第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何對字符串列表進行數(shù)字排序?

如何對字符串列表進行數(shù)字排序?

大話西游666 2019-07-05 14:43:37
如何對字符串列表進行數(shù)字排序?我知道這聽起來微不足道,但我沒有意識到sort()Python的功能很奇怪。我有一個實際上是字符串形式的“數(shù)字”列表,所以我首先將它們轉(zhuǎn)換為int,然后嘗試排序。list1=["1","10","3","22","23","4","2","200"]for item in list1:     item=int(item)list1.sort()print list1給我:['1', '10', '2', '200', '22', '23', '3', '4']我想要的是['1','2','3','4','10','22','23','200']我已經(jīng)查看了一些與數(shù)字集排序相關(guān)的算法,但我發(fā)現(xiàn)的算法都涉及字母數(shù)字集的排序。我知道這可能是一個不需要思考的問題,但是Google和我的教科書并沒有提供比.sort()功能。
查看完整描述

3 回答

?
當年話下

TA貢獻1890條經(jīng)驗 獲得超9個贊

實際上,您還沒有將字符串轉(zhuǎn)換為INT?;蛘哒f,你做了,但是你沒有對結(jié)果做任何事情。你想要的是:

list1 = ["1","10","3","22","23","4","2","200"]list1 = [int(x) for x in list1]list1.sort()

如果由于某種原因需要保留字符串而不是int(通常是個壞主意,但可能需要保留前導零或其他東西),則可以使用鑰匙功能。sort接受一個命名的參數(shù),key,它是在對每個元素進行比較之前調(diào)用的函數(shù)。將比較鍵函數(shù)的返回值,而不是直接比較列表元素:

list1 = ["1","10","3","22","23","4","2","200"]# call int(x) on each element before comparing itlist1.sort(key=int)


查看完整回答
反對 回復 2019-07-05
?
慕尼黑的夜晚無繁華

TA貢獻1864條經(jīng)驗 獲得超6個贊

您可以將一個函數(shù)傳遞給key參數(shù)這個.sort方法..這樣,系統(tǒng)將按鍵(X)而不是x排序。

list1.sort(key=int)

順便說一下,若要永久地將列表轉(zhuǎn)換為整數(shù),請使用這個map功能

list1 = list(map(int, list1))   # you don't need to call list() in Python 2.x

或列表理解

list1 = [int(x) for x in list1]


查看完整回答
反對 回復 2019-07-05
?
偶然的你

TA貢獻1841條經(jīng)驗 獲得超3個贊

Python的類型并不奇怪。只是這段代碼:

for item in list1:
   item=int(item)

不是你想的那樣-item不會被替換回列表中,它只是簡單地被丟棄。

無論如何,正確的解決辦法是使用key=int就像其他人向你展示的那樣。


查看完整回答
反對 回復 2019-07-05
  • 3 回答
  • 0 關(guān)注
  • 2373 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號