0
my_list = [([9, 1, 4], ['b', 'j', 'k']), ([8, 5, 9], ['m', 't', 'y']), ([6, 2, 0], ['p', 'q', 'r'])]
想(按顺序排列):
number_list = [9, 1, 4, 8, 5, 9, 6, 2, 0]
letter_list = ['b', 'j', 'k', 'm', 't', 'y', 'p', 'q', 'r']
显而易见的解决方案是:
for data in my_list:
try:
number_list += data[0]
letter_list += data[1]
except:
number_list = data[0]
letter_list = data[1]
print number_list
print letter_list
> [9, 1, 4, 8, 5, 9, 6, 2, 0]
> ['b', 'j', 'k', 'm', 't', 'y', 'p', 'q', 'r']
是否有更好和/或更快实现这一目标的方式 - 可能与列表理解?
您的“显而易见的”解决方案将更改'my_list'。当你写'number_list = data [0]'时,你不会在'data [0]'中得到一个列表的副本,而只是一个引用。 – Matthias
不知道。你如何得到一份清单的副本? –
您可以使用'number_list = data [0] [:]'或使用['copy.copy'](http://docs.python.org/3/library/copy.html#copy)获得副本。复制)或嵌套结构['copy.deepcopy'](http://docs.python.org/3/library/copy.html#copy.deepcopy)。 – Matthias