关于python:将元组附加到列表中

append tuples to a list

如何将以下每个元组(即列表中的元素)的内容附加到另一个已经包含"something"的列表中?因此,我想将以下内容附加到一个不为空的列表(例如:result[]):

1
l = [('AAAA', 1.11), ('BBB', 2.22), ('CCCC', 3.33)]

很明显,以下内容不起作用:

1
2
3
for item in l:
    result.append(item)
    print result

我想打印:

1
2
3
[something, 'AAAA', 1.11]
[something, 'BBB', 2.22]
[something, 'CCCC', 3.33]


1
result.extend(item)


您可以轻松地将元组转换为列表:

1
2
3
>>> t = ('AAA', 1.11)
>>> list(t)
['AAAA', 1.11]

然后您可以将列表与extend连接起来:

1
2
3
4
>>> t = ('AAA', 1.11)
>>> result = ['something']
>>> result.extend(list(t))
['something', 'AAA', 1.11])


可以使用内置的list()函数将元组转换为列表。所以更简单的版本是:

1
2
3
l = [('AAAA', 1.11), ('BBB', 2.22), ('CCCC', 3.33)]
result = [list(t) for t in l]
print result

输出:

1
2
3
[['AAAA', 1.1100000000000001],
 ['BBB', 2.2200000000000002],
 ['CCCC', 3.3300000000000001]]


您将需要解包元组以附加其单个元素。这样地:

1
2
3
4
5
6
7
l = [('AAAA', 1.11), ('BBB', 2.22), ('CCCC', 3.33)]

for each_tuple in l:
  result = ['something']
  for each_item in each_tuple:
    result.append(each_item)
    print result

您将得到:

1
2
3
['something', 'AAAA', 1.1100000000000001]
['something', 'BBB', 2.2200000000000002]
['something', 'CCCC', 3.3300000000000001]

您需要对数值进行一些处理,以便它们正确显示,但这是另一个问题。