我是新來的蟒蛇,我試圖整理的元組下面的列表裏的關鍵功能:寫排序功能
>>> str
[('991', 'Shantell'), ('992', 'Cherish'), ('993', 'Linsey'), ('994', 'Hali'), ('995', 'Tarah'), ('996', 'Annemarie'), ('997', 'Asha'), ('998', 'Jada'), ('999', 'Leila'), ('1000', 'Peggy')]
我想它的基礎上的元組的第一個值,但不幸的是,排序每個元組的第一個值是一個字符串,而不是一個整數。我知道我可以創建一個做到這一點的關鍵功能:
def digit_key(t):
return (int(t[0]))
,然後調用排序是這樣的:
>>> sorted(str,key=digit_key)
[('991', 'Shantell'), ('992', 'Cherish'), ('993', 'Linsey'), ('994', 'Hali'), ('995', 'Tarah'), ('996', 'Annemarie'), ('997', 'Asha'), ('998', 'Jada'), ('999', 'Leila'), ('1000', 'Peggy')]
難道我一直都在排序前定義按鍵功能? 有沒有一種更漂亮的方式來編寫這段代碼而不定義兩個函數呢? 我嘗試以下和失敗:
>>> sorted(str,key= int(str[0][0]))
Traceback (most recent call last):
File "<pyshell#1112>", line 1, in <module>
sorted(str,key= int(str[0][0]))
TypeError: 'int' object is not callable
你想用'str [0] [0]'做什麼? - 作爲一個側面說明,'str'是一個內建類型。你可能會最好把你的變量命名爲其他:) – mgilson 2013-03-05 21:58:32
謝謝....我將在未來保持這一點:) – tomkaith13 2013-03-05 22:00:14
有'digit_key'作爲命名函數有什麼問題?如果你想在多個地方使用它,單元測試它,請求幫助調試它,在6個月後自己調試它,你會很高興你已經將它定義爲一個單獨的函數。而且所有的代價都是一行浪費的代碼。這真的不能接受嗎? – abarnert 2013-03-05 22:07:18