[英]assign names to elements of unknown size list in python
考慮我有輸入列表包含元素19 14 36如何為每個元素分配名稱,比如說A代表第一個元素,B代表第二個元素,C代表第三個元素,輸出是排序列表(14,19,36),但是控制台上的打印列表我希望它是(B,A,C)
python中的賦值操作是什么功能?
對於任意長度的列表,執行此操作的最簡單方法可能是:
from operator import itemgetter
from string import ascii_uppercase
data = [19, 14, 36]
labelled = zip(data, ascii_uppercase) # [(19, 'A'), (14, 'B'), (36, 'C')]
sorted_data = sorted(labelled,
key=itemgetter(0)) # [(14, 'B'), (19, 'A'), (36, 'C')]
labels = [pair[1] for pair in sorted_data] # ['B', 'A', 'C']
您可以使用zip
:
>>> a = [19, 14, 36]
>>> b = ['A', 'B', 'C']
>>> print [b for (a,b) in sorted(zip(a,b), key=lambda x: x[0])]
['B', 'A', 'C']
你可以在這里嘗試
您可以使用zip
和itemgetter
完成操作:
import operator
number_arr = [19, 14, 32]
letter_arr = ['A', 'B', 'C']
zipped = zip(number_arr, letter_arr)
sorted_by_number = sorted(zipped, key=operator.itemgetter(0))
print list(map(operator.itemgetter(1), sorted_by_number))
有關詳細信息,請參閱zip , map和itemgetter上的python文檔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.