關於怎麼獲得,我想其實網上有很多答案。
list.index( )獲得值的索引值,但是如果list中含有的值一樣,例如含有兩個11,22,這樣每次獲得的都是第乙個值的位置。
那麼怎麼去解決這個問題呢?
下面的程式對這個問題做了一定的解答
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @author : sundaycoder-俊勇
# @file : listlearn.py
# 怎麼獲得list中的相同值的索引值
# 請看下列程式
s = [11, 22, 33, 44, 22, 11]
print s.index(11)
# 此時輸出0
print s.index(22)
# 此時輸出1
# 那怎麼才能得到11,22相同的值的索引值呢?
# 有人說用dict(字典),這個方法也可以
# 有人說用defaultdict
# 程式如下:
from collections import defaultdict
d = defaultdict(list)
for k,va in [(v,i) for i,v in enumerate(s)]:
print d
# 輸出的結果如下:defaultdict(, )
# 但是有沒有乙個更加簡單的方法呢?
# 有的,那就是」偷梁換柱「,用乙個s1來複製s。
s1 = s
i = s1.index(11)
s1[i]=55
# 替換s1的11為55(不一定是55只要是列表中沒有的數值就可以)
# 再列印s1
print s1
# 輸出[55, 22, 33, 44, 22, 11]
# 下一步可以得到11的位置了
print s1.index(11)
# 輸出為:5
python中改變list中list值的問題
l s 0,0,0 for i in range 3 l 1 1 1 print l 如上 定義乙個空list,新增元素也為list型別。本意是想改變list l中乙個值,使其結果為 0,0,0 0,1,0 0,0,0 但執行的結構下圖所示,將list l中的所有元素都改變了。為找到原因,檢視pyt...
Python中的List推導
list推導 list prehension 看它的英文名就夠煩人的了,我總無法記清 prehension的正確拼寫 為了防止我將這一優秀的特性也忘記,還是將它通俗的描述一下吧。官方教程中說list推導是一種建立list的簡潔方法,通常是乙個表示式跟著是乙個 for 的語句,然後是零個或多個 for...
Python 中的 List 列表
任意物件的有序集合 列表可以包含任何種類的物件 列表都是可變的 列表是有序的 2 常用操作 列表長度 l1 1,2,3,4 print len l1 4 列表拼接 l2 l1 5,6 print l2 1,2,3,4,5,6 生成重複列表 print list 5 list list list li...