當前位置:首頁 » 編程語言 » pythonlist集合

pythonlist集合

發布時間: 2022-02-17 09:20:34

A. 如何從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
>>>

B. 把python list中每個元素加1,有什麼簡潔的寫法

使用python的列表生成式即可,列表生成式即List Comprehensions,是Python內置的非常簡單卻強大的可以用來創建list的生成式。代碼如下:

C. 如何統計python list中元素的個數及其位置

l=[1,2,3,4,1]#目標數列
targetnum=1#元素
number=l.count(targetnum)
print('個數:'+str(number))
i=number
index=[]
whilei>0:
forxinrange(len(l)):
ifl[x]==targetnum:
index.append(x+1)
i=i-1
print('位置(第幾個):'+str(index))

D. Python的集合有哪些操作

集合是一個無序的,不重復的數據組合,它有著兩個主要作用:去重以及關系測試。去重指的是當把一個列表變成了集合,其中重復的內容就自動的被去掉了

關系測試指的是,測試兩組數據之間的交集、差集、並集等關系。

去重測試代碼如下:

#創建一個列表--裡面存在一些重復值

test_list = [1,2,3,4,2,2,3,4,3,2,3,4]

#利用集合將列表中重復的內容去掉

test_list = set(test_list)

#列印測試並且查看test_list被賦予新值後的數據類型print(test_list,type(test_list)) # {1, 2, 3, 4}

Tip:需要注意的是,集合和字典一樣都是無序的。

獲取交集需要使用集合中的方法intersection方法,獲取兩個集合中的交集代碼如下:

#創建兩個集合,並且獲取集合的交集

test_list_01 = set(['YanYan','LiBai','LuLu','YangMi'])

test_list_02 = set(['YanYan','LiuDeHua','ZhangXueYou','LiBai'])

#在上面的兩個集合中,存在相同的值,那麼現在我們取出兩個集合中的交集

test_intersection = test_list_01.intersection(test_list_02)print(test_intersection) # {'YanYan', 'LiBai'}

獲取並集的方式需要採用集合中union方法,獲取兩個集合的並集代碼如下:

#創建兩個集合,並且獲取集合的交集

test_list_01 =set(['YanYan','LiBai','LuLu','YangMi'])

test_list_02 =set(['YanYan','LiuDeHua','ZhangXueYou','LiBai'])

#採用集合中的union方法獲取並集

test_list_union = test_list_01.union(test_list_02)

print(test_list_union) # {'LiBai', 'LuLu', 'ZhangXueYou', 'LiuDeHua', 'YangMi', 'YanYan'}

獲取差集的方式要採用集合中的difference方法,獲取兩個集合的差集的代碼如下所示:

#創建兩個集合,並且獲取集合的交集

test_list_01 = set(['YanYan','LiBai','LuLu','YangMi'])

test_list_02 = set(['YanYan','LiuDeHua','ZhangXueYou','LiBai'])

#使用集合中的difference方法來獲取差集

test_difference = test_list_01.difference(test_list_02)

test_difference2 = test_list_02.difference(test_list_01)

print(test_difference) # {'LuLu', 'YangMi'}print(test_difference2) # {'ZhangXueYou', 'LiuDeHua'}

判斷一個集合是否是另外一個集合的子集可以使用issubset()方法,同樣,還可以使用issuperset()方法判斷一個集合是否是另外一個集合的父級

代碼如下:

#創建兩個集合

list_set = set([1,2,3,4])

list_son = set([2,3])

#判斷list_son是否是list_set的子集print(list_son.issubset(list_set)) # True#判斷list_set是否是list_son的父級print(list_set.issuperset(list_son)) # True

對稱差集(又有人稱之為叫做反向差集),指的是取出兩個集合中互相都沒有的值取出放在一個集合中。

代碼如下:

#創建兩個集合

list_set_num1 = set([1,3,5,7,9])

list_set_num2 = set([2,3,4,6,9,10])

#獲取兩個集合的對稱差集print(list_set_num1.symmetric_difference(list_set_num2)) # {1, 2, 4, 5, 6, 7, 10}

如果上述的難以理解的話,可以對對稱差集理解為去掉兩個集合中都存在的內容,將剩餘的內容取到一個新的集合中。

除了上述的這些方法實現的關系功能之外,還有一個方法isdisjoint(),功能是判斷兩個集合中是否有相同的值,如果兩個集合中沒有相同的值(即沒有交集),那麼返回True

代碼如下:

#創建集合

test_set_num1 = set([1,2,3,4])

test_set_num2 = set([5,6,7,8])

test_set_num3 = set([1,3,7,8])

#使用isdisjoint()方法來判斷print(test_set_num1.isdisjoint(test_set_num2)) # Trueprint(test_set_num1.isdisjoint(test_set_num3)) # False

通過運算符來進行關系測試

在上面的應用中,主要是通過python中的方法進行的關系測試,那麼在python中,除了使用方法以外,還可以使用關系運算符來進行關系測試。

實例代碼如下:

test_list_01 =set(['YanYan','LiBai','LuLu','YangMi'])

test_list_02 =set(['YanYan','LiuDeHua','ZhangXueYou','LiBai'])

#獲取交集&print(test_list_01 & test_list_02) # {'LiBai', 'YanYan'}

#獲取並集|print(test_list_01 | test_list_02) # {'LuLu', 'LiBai', 'LiuDeHua', 'YanYan', 'ZhangXueYou', 'YangMi'}

#獲取差集-print(test_list_01 - test_list_02) # {'LuLu', 'YangMi'}print(test_list_02 - test_list_01) # {'LiuDeHua', 'ZhangXueYou'}

#獲取對稱差集print(test_list_01 ^ test_list_02) # {'ZhangXueYou', 'YangMi', 'LuLu', 'LiuDeHua'}

集合的增刪改查

添加

語法:Set.add()

代碼如下:

#創建一個集合

test_set =set(['YanYan'])

#添加

test_set.add('LiBai') #添加一項

test_set.update(['LuLu','JingJing']) #一次性向集合中添加多項

#輸出集合

print(test_set) #{'YanYan', 'LuLu', 'LiBai', 'JingJing'}

刪除

刪除集合中的某一個元素可以使用remove方法

代碼如下:

#創建一個集合

test_set = set(['YanYan'])

#使用remove方法刪除元素

test_set.remove('YanYan')print(test_set) # set()

刪除項目除了使用remove以外,還可以使用pop()方法,但是pop()方法刪除內容不能夠指定,只是隨機刪除。

pop方法會把刪除的內容返回,示例代碼如下:

#創建一個集合

test_set = set([20,9,'a',1,2,3,4])print(test_set.pop()) # 1print(test_set.pop()) # 2print(test_set.pop()) # 3

刪除元素還可以使用discard()方法,這個方法沒有返回值,如果列印返回值的話會輸出None

#創建一個集合

test_list = set([1,2,3,4,5])

#使用discard()方法刪除--注意,discard()方法刪除返回None,也就是沒有返回值print(test_list.discard(3)) # None#此時原集合中的3已經被刪除了print(test_list) # {1, 2, 4, 5}

查詢

xins #判斷x是否是s的成員

xnotins 判斷x是否是s的成員

len(x) #查看x的長度

s <= t #測試是否s中的每一個元素都在t中

s >= t #測試是否t中的每一個元素都在s中


E. python集合元素可以是列表嗎

python集合元素可以是列表嗎
集合中元素的數據類型可以不同,但集合中不能嵌套列表、元組、集合、字典

Takoony

.集合(set)的定義
集合(set)是一個無序的不重復元素序列
可以使用大括弧 { } 或者 set( ) 函數創建集合
注意:創建一個空集合必須用 set( ) 而不是 { },因為 { } 是用來創建一個空字典
集合滿足的三個條件
1.不同元素組成
2.無序
3.集合中的元素必須是不可變類型

因為集合的元素類型只能是不可變數據類型,如整數,浮點數,字元串,元組等(列表,字典,集合類型本身都是可變數據類型,不能做集合的元素出現)

F. Python中list和set的區別

List
字面意思就是一個集合,在Python中List中的元素用中括弧[]來表示,可以這樣定義一個List:
L = [12, 'China', 19.998]

可以看到並不要求元素的類型都是一樣的。當然也可以定義一個空的List:
L = []

Python中的List是有序的,所以要訪問List的話顯然要通過序號來訪問,就像是數組的下標一樣,一樣是下標從0開始:
>>> print L[0]
12

千萬不要越界,否則會報錯
>>> print L[3]
Traceback (most recent call last):
File "<stdin>", line 1, in <mole>
IndexError: list index out of range

List也可以倒序訪問,通過「倒數第x個」這樣的下標來表示序號,比如-1這個下標就表示倒數第一個元素:
>>> L = [12, 'China', 19.998]
>>> print L[-1]
19.998

-4的話顯然就越界了

>>> print L[-4]

Traceback (most recent call last):
File "<pyshell#2>", line 1, in <mole>
print L[-4]
IndexError: list index out of range
>>>

List通過內置的append()方法來添加到尾部,通過insert()方法添加到指定位置(下標從0開始):

>>> L = [12, 'China', 19.998]
>>> L.append('Jack')
>>> print L
[12, 'China', 19.998, 'Jack']
>>> L.insert(1, 3.14)
>>> print L
[12, 3.14, 'China', 19.998, 'Jack']
>>>

注意python中有幾個方法與append類似,但是效果完全不一樣,使用時需根據實際需求選用正確方法
1.append() 向列表尾部追加一個新元素,列表只佔一個索引位,在原有列表上增加
2.extend() 向列表尾部追加一個列表,將列表中的每個元素都追加進來,在原有列表上增加
比如 list1=[1, 2, 3] .list2=[4, 5, 6]
list1.append(list2) 的結果為[1, 2, 3, [4, 5, 6]]
list1.extend(list2) 的結果為[1, 2, 3, 4, 5, 6]
3.+ 直接用+號看上去與用extend()一樣的效果,但是實際上是生成了一個新的列表存這兩個列表的和,只能用在兩個列表相加上
4.+= 效果與extend()一樣,向原列表追加一個新元素,在原有列表上增加
通過pop()刪除最後尾部元素,也可以指定一參數刪除指定位置:

>>> L.pop()
'Jack'
>>> print L
[12, 3.14, 'China', 19.998]
>>> L.pop(0)
12
>>> print L
[3.14, 'China', 19.998]

也可以通過下標進行復制替換
>>> L[1] = 'America'
>>> print L
[3.14, 'America', 19.998]

Set
set也是一組數,無序,內容又不能重復,通過調用set()方法創建:
>>> s = set(['A', 'B', 'C'])

對於訪問一個set的意義就僅僅在於查看某個元素是否在這個集合裡面,注意大小寫敏感:
>>> print 'A' in s
True
>>> print 'D' in s
False

也通過for來遍歷:

s = set([('Adam', 95), ('Lisa', 85), ('Bart', 59)])

for x in s:
print x[0],':',x[1]

>>>
Lisa : 85
Adam : 95
Bart : 59

通過add和remove來添加、刪除元素(保持不重復),添加元素時,用set的add()方法
>>> s = set([1, 2, 3])
>>> s.add(4)
>>> print s
set([1, 2, 3, 4])

如果添加的元素已經存在於set中,add()不會報錯,但是不會加進去了:
>>> s = set([1, 2, 3])
>>> s.add(3)
>>> print s
set([1, 2, 3])

刪除set中的元素時,用set的remove()方法:
>>> s = set([1, 2, 3, 4])
>>> s.remove(4)
>>> print s
set([1, 2, 3])
如果刪除的元素不存在set中,remove()會報錯:
>>> s = set([1, 2, 3])
>>> s.remove(4)
Traceback (most recent call last):
File "<stdin>", line 1, in <mole>
KeyError: 4

所以如果我們要判斷一個元素是否在一些不同的條件內符合,用set是最好的選擇,下面例子:

months = set(['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec',])
x1 = 'Feb'
x2 = 'Sun'

if x1 in months:
print 'x1: ok'
else:
print 'x1: error'

if x2 in months:
print 'x2: ok'
else:
print 'x2: error'

>>>
x1: ok
x2: error

另外,set的計算效率比list高

G. 如何獲取Python中list的子集

Python的索引從0開始,還有反向索引。索引指定為-1就是最後一項。

list的切割:指定一個范圍

[起點:終點] 起點包含,終點不包含

還可以不指定冒號前後的數值,如果不指定前的數值默認從0開始,如果不指定冒號後的數值默認到list結束。

H. python list

很簡單啊,先寫個迭代過濾

list4=filter((lambda x:x<1),list3)

然後

sum(list4)

就行了的

還有一種方法用列表解析:

list4 = [i for i in list3 if x <1]

I. python list[]

a[0,0]這種表達式是錯的。
slice操作應該是這樣a[0:1]
a[0:0]或a[1:1]得到的都是空列表。

J. 在python中如何將兩個list合並成一個list,不用for語句

1、運算符:

list1 = [1, 2, 3]

list2 = [4, 5, 6]

list3 = list1 + list2

print(list3)

2、extend()方法:

list1 = [1, 2, 3]

list2 = [4, 5, 6]

list3 = list1.extend(list2)

print(list3)

3、切片方式:

list1 = [1, 2, 3]

list2 = [4, 5, 6]

list1[len(list1):len(list1)] = list2

print(list1)

(10)pythonlist集合擴展閱讀:

list的方法

L.append(var) #追加元素

L.insert(index,var)

L.pop(var) #返回最後一個元素,並從list中刪除之

L.remove(var) #刪除第一次出現的該元素

L.count(var) #該元素在列表中出現的個數

L.index(var) #該元素的位置,無則拋異常

L.extend(list) #追加list,即合並list到L上

L.sort() #排序

L.reverse() #倒序

list 操作符:,+,*,關鍵字del

a[1:] #片段操作符,用於子list的提取

[1,2]+[3,4] #為[1,2,3,4]。同extend()

[2]*4 #為[2,2,2,2]

del L[1] #刪除指定下標的元素

del L[1:3] #刪除指定下標范圍的元素

熱點內容
神奇攝影app無法存儲照片 發布:2025-01-05 11:37:42 瀏覽:898
電銷機器人系統源碼 發布:2025-01-05 11:37:41 瀏覽:721
招投標系統源碼 發布:2025-01-05 11:36:57 瀏覽:411
php翻轉字元串 發布:2025-01-05 11:30:20 瀏覽:334
公開密鑰加密系統 發布:2025-01-05 11:25:35 瀏覽:56
安裝mysqlpython 發布:2025-01-05 11:17:02 瀏覽:742
tar備份linux 發布:2025-01-05 11:13:37 瀏覽:727
大型pppoe伺服器搭建 發布:2025-01-05 11:12:59 瀏覽:843
怎麼修改360wifi密碼 發布:2025-01-05 11:12:51 瀏覽:61
php文件資料庫 發布:2025-01-05 11:06:18 瀏覽:768