⑴ python集合元素可以是列表嗎
集合的元素不可以是列表,只能是固定數據類型,例如數值、字元串、元組
⑵ python一些數在列表中,如:L = [1, 3, 2, 1, 6, 4, 2, ....., 98, 82]
第一個要求其實很簡單,可以講列表轉為集合,python中列表是用於儲存不限數量可重復可修改元素的,集合是用於儲存不限數量不可重復可修改元素的(也有不可修改集合),只要將列表轉為集合再轉回列表,就可以滿足第一個要求;第二個要求可以使用列表的count屬性和列表推導式來獲取列表中重復的元素,參考代碼如下:
list1 = [1, 1, 2, 94, 64, 10, 10, 10, 99]
list2 = list(set(list1))
list3 = list(set([i for i in list1 if list1.count(i)>1]))
print(list2)
print(list3)
結果是:
[64, 1, 2, 99, 10, 94]
[1, 10]
⑶ python中list轉換的問題
怎麼寫的這么復雜啊…… 正確的python代碼風格應該是下面兩種。 總的來說,用map並不是一個最優的選擇,更建議用 list comprehension 來解決類似問題。
用map:
name=['jim','ToM','KOII']
name=list(map(lambdax:x.capitalize()),name))#python3
#或者
name=map(lambdax:x.capitalize()),name)#python2
list comprehension:
name=['jim','ToM','KOII']
name=[x.capitalize()forxinname]
⑷ Python列表,元組,集合,字典的區別和相互轉
列表、元組、集合、字典相互轉換
一、列表元組轉其他
1、列表轉集合(去重)
list1 = [6, 7, 7, 8, 8, 9]
set(list1)
# {6, 7, 8, 9}
2、兩個列表轉字典
list1 = ['key1','key2','key3']
list2 = ['1','2','3']
dict(zip(list1,list2))
# {'key1': '1', 'key2': '2', 'key3': '3'}
3、嵌套列表轉字典
list3 = [['key1','value1'],['key2','value2'],['key3','value3']]
dict(list3)
# {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
4、列表、元組轉字元串
list2 = ['a', 'a', 'b']
''.join(list2)
# 'aab'
tup1 = ('a', 'a', 'b')
''.join(tup1)
# 'aab'
二、字典轉其他
1、 字典轉換為字元串
dic1 = {'a':1,'b':2}
str(dic1)
# "{'a': 1, 'b': 2}"
2、字典key和value互轉
dic2 = {'a': 1, 'b': 2, 'c': 3}
{value:key for key, value in a_dict.items()}
# {1: 'a', 2: 'b', 3: 'c'}
三、字元串轉其他
1、字元串轉列表
s = 'aabbcc'
list(s)
# ['a', 'a', 'b', 'b', 'c', 'c']
2、字元串轉元組
tuple(s)
# ('a', 'a', 'b', 'b', 'c', 'c')
3、 字元串轉集合
set(s)
# {'a', 'b', 'c'}
4、字元串轉字典
dic2 = eval("{'name':'ljq', 'age':24}")
5、切分字元串
a = 'a b c'
a.split(' ')
# ['a', 'b', 'c']
⑸ Python列表,元組,集合,字典的區別和相互
元組和列表是類似的, 只是元組不可修改內容
注意這里指的是不可修改元組元素的指向, 你可以修改內容指向的內容
>>>lst=[1,2,3]#定義列表
>>>a=(1,2,lst,4)#注意元組a的a[2]是一個列表
>>>a
(1,2,[1,2,3],4)
>>>a[2]=4#試圖修改元組元素的指向,報錯
Traceback(mostrecentcalllast):
File"<pyshell#3>",line1,in<mole>
a[2]=4
TypeError:'tuple'
>>>a[2][0]=0#不修改元組元素的指向的元素,但是修改指向的內容
>>>a
(1,2,[0,2,3],4)
>>>a[2].append(5)#不修改元組元素的指向的元素,但是修改指向的內容
>>>a
(1,2,[0,2,3,5],4)
字典完全區別於列表和元組
因為字典使用hash表來存儲, 所以只有能夠進行hash運算的才能作為鍵值
個人認為, 一般不可變的都能作為鍵, 比如str/tuple/None/function.列表不能作為鍵
最後, 由於字典是hash表演算法{字典查找O(1), 列表遍歷O(n)}, 在數據量巨大的時候, 字典的查找效率出奇的高
⑹ Python裡面如何實現tuple和list的轉換
list(列表):list是一種有序的集合,可以隨時添加和刪除其中的元素。
tuple(元祖):tuple和list非常類似,但是tuple一旦初始化就不能修改,比如同樣是列出同學的名字:
python3下運行
list和tuple是Python內置的有序集合,一個可變,一個不可變。
⑺ python集合
*事先說明:以下代碼及結果來自本設備Python控制台,在不同設備上可能結果有區別,望自己嘗試為妙
集合(set),是一種Python里的類(class),
集合類似於列表(list),可更改,可迭代(iterable),但是元素不重復
定義集合使用花括弧{},例如:
>>> s = {"apple", "banana", "strawberry", "watermelon"}
警告!!!如果使用空括弧
>>> a = {}
>>> a.__class__
<class 'dict'>
a將成為一個字典
想要定義空集合,
請使用類名。
>>> a = set()
類名定義也可以把迭代轉換為集合:
>>> b = set("abc")
>>> b
{'a', 'b', 'c'}
但是,保存後它是無序的。
>>> s
{'banana', 'watermelon', 'strawberry', 'apple'}
(結果僅供參考,在不同設備上略有不同)
下面介紹它的性質:
1. 可更改:
使用add(x)方法添加元素x:
>>> s.add("lemon")
>>> s
{'banana', 'strawberry', 'lemon', 'watermelon', 'apple'}
使用update(iter1, iter2, …)方法添加多個可迭代對象(如列表,元組(tuple),另一個集合)里的元素:
>>> s.update(("orange", "grape"))
>>> s
{'banana', 'strawberry', 'orange', 'lemon', 'watermelon', 'apple', 'grape'}
警告!!!如果使用字元串,字元串也會被迭代:
>>> a = set()
>>> a.update("apple")
>>> a
{'a', 'p', 'e', 'l'}
使用remove(x)移除元素x,如果x不存在,則拋出KeyError錯誤
>>> s.remove("lemon")
>>> s
{'banana', 'strawberry', 'orange', 'watermelon', 'apple', 'grape'}
>>> s.remove("cat")
Traceback (most recent call last):
File "<stdin>", line 1, in <mole>
s.remove("cat")
KeyError: 'cat'
使用discard(x)移除元素x,不會發生錯誤
>>> s.discard("grape")
>>> s
{'banana', 'strawberry', 'orange', 'watermelon', 'apple'}
>>> s.discard("dog")
>>> s
{'banana', 'strawberry', 'orange', 'watermelon', 'apple'}
2. 可迭代:
>>> for x in s:
... print(x)
banana
strawberry
orange
watermelon
apple
3. 可以使用 len 函數獲取集合長度;
>>> len(s)
5
可以使用in關鍵字檢查一個元素是否在集合內,將返回邏輯值(bool):
>>> "apple" in s
True
>>> "candy" in s
False
4.集合具有不重復性,因此它會自動去重:
>>> c = set("Hello World!")
>>> c
{' ', 'e', 'l', 'H', '!', 'r', 'W', 'o', 'd'}
5. 集合的運算
>>> d = set("abcdef")
>>> e = set("efghij")
>>> d
{'c', 'e', 'a', 'b', 'f', 'd'}
>>> e
{'h', 'e', 'g', 'j', 'f', 'i'}
>>> d - e # 集合d去掉集合e含有的元素,或者說集合d包含而集合e不包含的元素(不改變原集合)
{'a', 'b', 'd', 'c'}
>>> d | e # 集合d,e的所有元素
{'c', 'e', 'h', 'g', 'a', 'b', 'j', 'f', 'd', 'i'}
>>> d & e # 集合d,e都包含的元素
{'f', 'e'}
>>> d ^ e # 不同時出現在集合d, e中的元素
{'c', 'g', 'h', 'a', 'b', 'j', 'd', 'i'}
注意!!!
字元串、列表通用的+和*不適用於集合
>>> "abc" + "def"
'abcdef'
>>> [1, 2, 3] + [4, 5, 6]
[1, 2, 3, 4, 5, 6]
>>> d + e
Traceback (most recent call last):
File "<stdin>", line 1, in <mole>
d + e
TypeError: unsupported operand type(s) for +: 'set' and 'set'
>>> "a" * 5
'aaaaa'
>>> [1] * 3
[1, 1, 1]
>>> d*3
Traceback (most recent call last):
File "<stdin>", line 1, in <mole>
d * 2
TypeError: unsupported operand type(s) for *: 'set' and 'int'
(作者的小觀點:既然集合是不能重復的,那麼乘以、重復是沒有意義的)
⑻ 在python中,列表,字典的相互轉換
列表、元組、集合、字典相互轉換
一、列表元組轉其他
1、列表轉集合(去重)
list1
=
[6,
7,
7,
8,
8,
9]
set(list1)
#
{6,
7,
8,
9}
2、兩個列表轉字典
list1
=
['key1','key2','key3']
list2
=
['1','2','3']
dict(zip(list1,list2))
#
{'key1':
'1',
'key2':
'2',
'key3':
'3'}
3、嵌套列表轉字典
list3
=
[['key1','value1'],['key2','value2'],['key3','value3']]
dict(list3)
#
{'key1':
'value1',
'key2':
'value2',
'key3':
'value3'}
4、列表、元組轉字元串
list2
=
['a',
'a',
'b']
''.join(list2)
#
'aab'
tup1
=
('a',
'a',
'b')
''.join(tup1)
#
'aab'
二、字典轉其他
1、
字典轉換為字元串
dic1
=
{'a':1,'b':2}
str(dic1)
#
"{'a':
1,
'b':
2}"
2、字典key和value互轉
dic2
=
{'a':
1,
'b':
2,
'c':
3}
{value:key
for
key,
value
in
a_dict.items()}
#
{1:
'a',
2:
'b',
3:
'c'}
三、字元串轉其他
1、字元串轉列表
s
=
'aabbcc'
list(s)
#
['a',
'a',
'b',
'b',
'c',
'c']
2、字元串轉元組
tuple(s)
#
('a',
'a',
'b',
'b',
'c',
'c')
3、
字元串轉集合
set(s)
#
{'a',
'b',
'c'}
4、字元串轉字典
dic2
=
eval("{'name':'ljq',
'age':24}")
5、切分字元串
a
=
'a
b
c'
a.split('
')
#
['a',
'b',
'c']
⑼ python中集合的元素可以是列表嗎
集合的特點:無序,數據可變,數據不可重復,數據類型可不同,不可嵌套。集合最好的應用是去重和關系操作(交集、並集等)。集合沒有特殊的表示方法,而是通過一個set函數轉換成集合。
所以,集合的元素不可以是列表。
⑽ python求列表交集的方法匯總
python求列表交集的方法匯總
本文實例匯總了python求列表交集的方法。分享給大家供大家參考。具體方法如下:
交集對於給定的兩個集合A 和 集合B 的交集是指含有所有既屬於 A 又屬於 B 的元素,而沒有其他元素的集合叫交集了,下面給出幾個python求列表交集例子供大家參考。
方法1
遍歷b1,如果某個元素同時也存在於b2中,則返回
代碼如下:b1=[1,2,3]
b2=[2,3,4]
b3 = [val for val in b1 if val in b2]
print b3
運行結果如下
代碼如下:[2, 3]
方法2
把列表轉換為集合,利用集合操作符求出交集,然後再轉換回列表類型
代碼如下:b1=[1,2,3]
b2=[2,3,4]
b3=list(set(b1) & set(b2))
print b3
運行結果如下
代碼如下:[2, 3]
方法3
前面的例子中兩個list都是簡單的單元素列表,還有一種比較特殊的情況,就是有嵌套類型的
代碼如下:b1=[1,2,3]
b2=[[2,4],[3,5]]
b3 = [filter(lambda x: x in b1,sublist) for sublist in b2]
print b3
運行結果如下
代碼如下:[2, 3]
希望本文所述對大家的Python程序設計有所幫助。