pythonlistforif
⑴ python 在for循環裡面成功改變list,退出for循環後list卻沒變
python裡面字元串是不可修改的,所以傳值的時候並不是把Image[i]這個對象傳給了i,而是傳過去的復制值,所以你修改的只是i這個變數不是對應的Image[i]
要麼改得復雜點改成這樣:
print ''
print Images
print ''
for i in range(len(Images)):
print Images[i]
Images[i] = 'http://www.somesite.com' + Images[i]
print Images[i]
print ''
for i in Images:
print i
if 'http' in i:
print 'True'
else:
print 'False'
⑵ Python怎麼寫一個循環判斷的list
你對list的理解有點問題。
list在python里是數組的意思,是一種數據結構。
l = [1,2,3 ... 100] # 或者寫成 range(100)
foriinl:
ifi>10:
printi
⑶ python實現給定一個列表判斷裡面是否有重復
有兩個方法:
使用列表的count方法,因為count方法可以做對象內的元素進行出現次數疊加計算
list1=[1,2,3,4,4,5,6,7]list1.count(1)#結果為1list1.count(4)#結果為2foriinlist1:iflist1.count(i)>=2:print('該元素%s重復'%i)#結果:該元素4重復該元素4重復#因為迭代了兩次4所以有兩次輸出,功能是實現了,但是卻列印了兩次,有點不理想- list1=[1,2,3,4,4,5,6,7]list2=list1.()#為了不破壞原數據,臨時淺復制給變數list2list3=list(set(list2))#使用set()函數將list2轉為集合去掉重復元素又用list()轉回列表foriinlist3:#對無重復元素的列表list3迭代ifiinlist2:list1.remove(i)#當list3內的元素存在於list2中,則把其元素從list2中刪除,最後就會留下重復元素print('list1:%s中的重復元素有:%s'%(list1,list2))#組後輸出原數據list1和最終結果list2#結果:list1:[1,2,3,4,4,5,6,7]中的重復元素有:[4]#效果實現了,也沒問題,就是變數使用有點多。看你選擇了
2.借用工廠函數set()把對象轉為集合和列表的方法(淺復制),集合會默認把重復元素去掉
⑷ python if 語句和列表結合求解
defselect_data(list):
defcheck_pass(fname,surname):
'''這里做成一個函數,直觀一點'''
forrecinlist:
ifstr(rec[1])==fnameandstr(rec[0])==surname:
returnTrue
returnFalse
#check_pass結束
#加一個flag作為標記,通過檢查(is_pass為True)就結束了
is_pass=False
whilenotpass:
first_name=str(input('Inputfirstname'))
surname=str(input('Inputsurname'))
is_pass=check_pass(first_name,surname)
⑸ python中的for循環取list中的第i 個值值
如果一定要用循環寫,是這么寫的
lis=['a','b','c']
for i in lis:
if i=='b':
print(i)
⑹ python中關於for循環取list的數值。
for i in test:
if i=='ABC':
print 'The result is right'
⑺ python語法問題:關於在list中使用for循環
Python 的強大特性之一是其對 list 的解析,它提供一種緊湊的方法,可以通過對 list 中的每個元素應用一個函數,從而將一個 list 映射為另一個 list。
例 3.24. List 解析介紹
>>> li = [1, 9, 8, 4]
>>> [elem*2 for elem in li]
[2, 18, 16, 8]
>>> li
[1, 9, 8, 4]
>>> li = [elem*2 for elem in li]
>>> li
[2, 18, 16, 8]
為了便於理解它,讓我們從右向左看。li 是一個將要映射的 list。Python 循環遍歷 li 中的每個元素。對每個元素均執行如下操作:首先臨時將其值賦給變數 elem,然後 Python 應用函數 elem*2 進行計算,最後將計算結果追加到要返回的 list 中。
需要注意是,對 list 的解析並不改變原始的 list。
將一個 list 的解析結果賦值給對其映射的變數是安全的。不用擔心存在競爭情況或任何古怪事情的發生。Python 會在內存中創建新的 list,當對 list 的解析完成時,Python 將結果賦給變數。
From <dive into python>
⑻ 有關python中for循環和列表的兩個問題!!
第一個問題你用的for-in,這樣你的list沒有一個序號,也就不能判斷第一個元素了,像這樣遍歷的為什麼不用for i in range(len(list))呢。。如果你真的像這樣,可以在循環外設置一個計數器,然後在循環里不斷加一。。
第二個問題條件寫 if type(i)==list:就可以了。。
⑼ python中為什麼我的for循環里嵌套的if只能循環一次
你要遍歷的話,不能把name = input("請輸入你想修改的學生姓名:")放在循環里
應該是先輸入,對輸入的字元進行循環遍歷,而不是循環輸入」學生姓名「
運行結果
⑽ python實現給定一個列表判斷裡面是否有重復元素
有兩個方法:
使用列表的count方法,因為count方法可以做對象內的元素進行出現次數疊加計算
list1=[1,2,3,4,4,5,6,7]
list1.count(1)#結果為1
list1.count(4)#結果為2
foriinlist1:
iflist1.count(i)>=2:
print('該元素%s重復'%i)
#結果:
該元素4重復
該元素4重復#因為迭代了兩次4所以有兩次輸出,功能是實現了,但是卻列印了兩次,有點不理想
2.借用工廠函數set()把對象轉為集合和列表的方法(淺復制),集合會默認把重復元素去掉
list1=[1,2,3,4,4,5,6,7]
list2=list1.()#為了不破壞原數據,臨時淺復制給變數list2
list3=list(set(list2))#使用set()函數將list2轉為集合去掉重復元素又用list()轉回列表
foriinlist3:#對無重復元素的列表list3迭代
ifiinlist2:
list1.remove(i)#當list3內的元素存在於list2中,則把其元素從list2中刪除,最後就會留下重復元素
print('list1:%s中的重復元素有:%s'%(list1,list2))#組後輸出原數據list1和最終結果list2
#結果:
list1:[1,2,3,4,4,5,6,7]中的重復元素有:[4]
#效果實現了,也沒問題,就是變數使用有點多。看你選擇了