如何从列表中提取值并添加到另一个Python列表中

2024-03-28 20:37:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下代码:

items = list()
for i in response['Contents']:
    items[i].append('s3://' + response['Name'] + '/' + i['Key'])
    items[i].append(i['Key'].rsplit('/', 1)[-1])
    items[i].append(i['Size'])

response['Contents']具有如下架构:

^{pr2}$

基本上,我想要一个3值元组[[value1, value2, value3], [value1, value2, value3]...]的输出。在

如何正确提取值? (我将把zip与另一个具有列名的列表一起使用,以便稍后创建dict)。在


Tags: key代码nameinfors3responsecontents
3条回答

首先,你不能做items[i].append(),因为i是一个dict,items是一个列表(还有其他原因)。也许您应该考虑在for循环中创建一个新列表,附加每个项,然后将其转换为元组以附加到项:

items = list()
for contents in response['Contents']:
    i = list()
    i.append('s3://' + response['Name'] + '/' + contents['Key'])
    i.append(contents['Key'].rsplit('/', 1)[-1])
    i.append(contents['Size'])
    items.append(tuple(i))

既然这个问题还没有解决,我就把它写成:

import os

items = []
s1 = 's3://{Name}/{{Key}}'.format(**response)

for i in response['Contents']:  

    v1 = s1.format(name,**i)
    v2 = os.path.basename(i['Key'])
    v3 = i['Size']    

    items.append([v1,v2,v3])

只需将它们作为list/tuple添加到原始列表中:

items = []
for i in response['Contents']:  # assuming response['Contents'] is a list
    items.append([
        's3://' + response['Name'] + '/' + i['Key'],
        i['Key'].rsplit('/', 1)[-1],
        i['Size']
    ])

相关问题 更多 >