1. python 求助如何用一個list中的值替換一個字元串中的某個數值!
描述相當不清楚。
這一行我是保存在一個list中 : 「這一行」是什麼數據類型?
另一個保存在list中(list有很多行)的數值 : 「另一個」是哪個?
你這種描述估計只有你自己能弄明白。
如果你不能描述清楚你想干什麼,那就直接說你想得到什麼樣的結果。
2. python中,如何將list中的各個值快速賦值給變數
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>
3. Python 如何利用函數修改函數外list
"""
使用global子句。在stisfiesF函數中,聲明L為一個全局變數,如此
你在該函數中修改L的值,則會體現到函數之外。這種寫法違背Python
優雅的原則,不推薦使用,僅供學習.【L中的元素不能有數字,否則
報錯,我也不知什麼原因】
"""
deff(s):
return'av'ins
#在聲明L為全局變數之前定義,代碼更直觀
L=['av1','av','a','b','ac','love','python',('f','av','gh'),[1,2,3]]
#此處函數不傳入參數L
defsatisfiesF():
#聲明L為全局變數
globalL
x=[]
foriinL:
iff(i):
x.append(i)
else:
pass
L=x
returnlen(L)
print('新列表L的長度為%s'%satisfiesF())
print('將原列表修改為元素含有"av"的新列表L:')
print(L)
"""
結果:新列表L的長度為3
將原列表修改為元素含有"av"的新列表L:
['av1','av',('f','av','gh')]
>>>
"""
4. python如何批量修改列表元素
list = ['一班張三', '二班李明', '二班張麗麗', '四班王強', '一班張志華']
list = ['樹人小學' + re.sub('^\w\w', '', x) for x in list]
print(list)
5. Python如何改變列表內元素取值(使用循環或list comprehension)
a = lista
b = [x for x in a if x > 0] 列表推導式
6. python替換list元素,列表alist中有很多0數字,要替換成1
alist=[1,3,5,2,0,3,7,0,0,3,7]
foriinrange(len(alist)):
ifalist[i]==0:
alist[i]=1
printalist
7. Python如何替換list中的字元
利用re庫進行正則表達替換,python3.4中
importre
a=["123","456","789"]
d={"B":"2","E":"5","H":"8"}
b=",".join(a)
print(b)
foriind.keys():
b=re.sub(d[i],i,b)
print(b.split(","))
8. 如何從python的list中提想要的值
$python
Python2.7.3(default,Mar142014,11:57:14)
[GCC4.7.2]onlinux2
Type"help","right","credits"or"license"formoreinformation.
>>>lst=[
...'11','1','100','10 ',
...'11','2','200','20 ',
...'11','3','300','30 ',
...'11','4','400','40 ']
>>>#第一步:將數據組織成方便使用的結構
>>>data=[
...map(int,lst[i*4:(i+1)*4])
...foriinxrange(len(lst)/4)
...]
>>>data
[[11,1,100,10],[11,2,200,20],[11,3,300,30],[11,4,400,40]]
>>>#第二步就直接簡單地計算好了
>>>1.*sum([x[2]forxindata])/len(data)
250.0
>>>1.*sum([x[3]forxindata])/len(data)
25.0
>>>
或者在要處理很多月份,並有按月計算的需求時:按月-數據的字典結構組織數據
並設一個計算平均值的函數就更簡單了
>>>lst=[
...'11','1','100','10 ',
...'11','2','200','20 ',
...'11','3','300','30 ',
...'11','4','400','40 ',
...'12','1','120','12 ',
...'12','2','230','23 ',
...'12','3','340','34 ',
...'12','4','450','45 ',
...]
>>>
>>>data={}
>>>forxin[
...map(int,lst[i*4:(i+1)*4])
...foriinxrange(len(lst)/4)
...]:
...data.setdefault(x[0],[]).append(x[1:])
...
>>>defavg(serial):
...return1.*sum(serial)/len(serial)
...
>>>avg([x[1]forxindata[12]])#計算12月的第二個數據的平均值
285.0
>>>
9. python向set中添加list後給list重新賦值,為什麼set輸出中list的值沒有改變
因為地址變了,set的地址和list的不是一個
10. 關於python 中修改list元素的值的區別是什麼
在Python中,存在可變元素和不可變元素兩種說法;
list屬於可變元素;
改變元素的值可以通過索引的方法實現;
舉例說明,什麼是可變元素,以及修改值的區別:
arr1=[1,2,3,4]
arr1[2]="aa"
printarr1#[1,2,'aa',4]
arr2=arr1
arr2[1]="bb"
printarr2#[1,'bb','aa',4]