簡體   English   中英

在python中為未知大小列表的元素分配名稱

[英]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']

你可以在這里嘗試

您可以使用zipitemgetter完成操作:

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))

有關詳細信息,請參閱zipmapitemgetter上的python文檔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM