簡體   English   中英

你如何對python中的字符串數字列表進行排序?

[英]How do you sort a list of numbers which are strings in python?

這很可能是一個重復的問題,但是我所有的搜索都沒有成功幫助我。 無論如何,我想將此列表從最大數字到最小數字進行排序,但它始終打印無。 在此先感謝您的幫助!

list = ['1008', '1033', '1080', '3107', '3589', '574', '703', '704', '712', '731', '810', '857', '862', '909', '927', '980']

print(list.sort()) # Prints None

它正在執行內聯排序。 您必須嘗試以下任一方法。

Python 列表有一個內置的 sort() 方法,它可以就地修改列表,還有一個 sorted() 內置函數,它從一個可迭代對象構建一個新的排序列表。

list.sort()
print(list)

或者

print(sorted(list))

您的列表是字符串。 首先,您必須將它們轉換為整數,然后進行排序。

>>> list
['1008', '1033', '1080', '3107', '3589', '574', '703', '704', '712', '731', '810', '857', '862', '909', '927', '980']
>>> int_list = [int(l) for l in list]
>>> int_list.sort()
>>> int_list
[574, 703, 704, 712, 731, 810, 857, 862, 909, 927, 980, 1008, 1033, 1080, 3107, 3589]

或者簡單地你可以做如下:

>>> print(sorted(list,key=int))

嘗試

sorted((int(i) for i in list),reverse=True)

您正在對字符串列表進行排序,您可以將int作為鍵傳遞給 sort 函數,因此它將為列表中的每個字符串調用int()

list = ['1008', '1033', '1080', '3107', '3589', '574', '703', '704', '712', '731', '810', '857', '862', '909', '927', '980']
list.sort(key=int)
print(list)

嘗試這個:

list = ['1008', '1033', '1080', '3107', '3589', '574', '703', '704', '712', '731', '810', '857', '862', '909', '927', '980']

for i in range(0, len(list)): 
    list[i] = int(list[i])

list.sort(reverse = True) 
print(list)

'''

暫無
暫無

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

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