list1 = [['a', (1, 1)], ['a', (1, 2)], ['a', (1, 3)]]
想我需要更換第一「A」與(0,1)
,那麼結果應該是:如何將列表中的字符串轉換爲元組?
[[(0,1), (1, 1)], ['a', (1, 2)], ['a', (1, 3)]]
我怎麼能這樣做?
list1 = [['a', (1, 1)], ['a', (1, 2)], ['a', (1, 3)]]
想我需要更換第一「A」與(0,1)
,那麼結果應該是:如何將列表中的字符串轉換爲元組?
[[(0,1), (1, 1)], ['a', (1, 2)], ['a', (1, 3)]]
我怎麼能這樣做?
簡單地解決內部列表:
list1[0][0] = (0, 1)
第一個索引操作[0]
檢索外部列表中的第一個元素,給你再申請另一索引操作,以獲得包含列表的第一個元素。
>>> list1 = [['a', (1, 1)], ['a', (1, 2)], ['a', (1, 3)]]
>>> list1[0][0] = (0, 1)
>>> list1
[[(0, 1), (1, 1)], ['a', (1, 2)], ['a', (1, 3)]]
>>> my_list = [['a', (1, 1)], ['a', (1, 2)], ['a', (1, 3)]]
>>> for sublist in my_list:
if sublist[0] == 'a':
sublist[0] = (0, 1)
break
>>> my_list
[[(0, 1), (1, 1)], ['a', (1, 2)], ['a', (1, 3)]]
編輯:使這個回答這個問題(僅第一個「A」),並滿足不高興壓痕客戶 - 這裏的一些行上下的代碼:
for inner_list in list1:
for idx, elem in enumerate(inner_list):
if elem=='a':
inner_list[idx] = (0,1)
break
不,示例輸出顯示只有第一個'a'需要被替換。您的代碼會替換所有*出現的'a'。 – 2012-07-30 11:15:18
我的錯誤 - 謝謝。 – 2012-07-30 11:17:30
@GuyAdini添加'break'並修復pascal縮進! – jamylak 2012-07-30 11:21:42
我不如果你不想循環某些東西,那麼認爲使用循環結構是一個好主意。 – MaxPowers 2012-07-30 11:17:23
@MaxPowers他說他想替換**第一個**''a'',所以我認爲他的意思是一般意義上的。 – jamylak 2012-07-30 11:18:17
@MaxPowers:這個問題有足夠的含糊不清,以使這個答案也是正確的;我的答案是最明顯的正確答案*如果你知道第一個'a'所在的位置*。否則,jamylak通過搜索找到它是正確的。 – 2012-07-30 11:21:19