Python列表,元组,集合,字典的区别和相互转

Python018

Python列表,元组,集合,字典的区别和相互转,第1张

列表、元组、集合、字典相互转换

一、列表元组转其他

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']

li = [1, 2, 3]

t = tuple(li)

print(t, type(t))

del list #先清除list缓存

tu = (1, 2, 3)

li = list(tu)

print(li, type(li))

li = ['人', '生', '苦', '短']

str1 = ''.join(li)

print(str1, type(str1))

str2 = 'hello python'

li1 = str2.split(' ')

print(li1, type(li1))

list1 = ['name', 'age', 'sex']

list2 = ['张三', 18, '男']

dict = {}

for i in range(len(list1)):

dict[list1[i]] = list2[i]

print(dict, type(dict))

del dict#清除缓存

list1 = ['name', 'age', 'sex']

list2 = ['张三', 18, '男']

d = dict(zip(list1, list2))

print(d)

dict = {'name': '张三', 'age': 18, 'sex': '男'}

keys = list(dict.keys())

values = list(dict.values())

print(keys, type(keys))

print(values, type(values))

list3 = [['key1','value1'],['key2','value2'],['key3','value3']]

print(dict(list3))

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

s1 = set(list1)

print(s1, type(s1))

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

s1 = set(list1)

list2 = list(s1.intersection(s1))

print(list2, type(list2))

list = []

a = '人生苦短'

list.append(a)

print(list)

b = tuple(list)

print(b, type(b))

dict = {'name': 'xiaoming', 'age': 18}

tup = tuple(dict)

print(tup) # 只转换了key

tup2 = tuple(dict.values())

print(tup2)

dic1 = {'a': 1, 'b': 2}

str1 = str(dic1)

dic2 = eval("{'name':'xiaoming', 'age':18}")

print(dic2, type(dic2))

str1 = 'hello'

s1 = set(str1)

print(s1, type(s1))

dic1 = {'a': 1, 'b': 2, 'c': 3}

dic2 = {value: key for key, value in dic1.items()}

print(dic2)

    1.集合(set)是一个无序不重复元素的序列(意思是有重复的会自动删除,每次打印元素的位置不一定)

    2.基本功能是进行成员关系测试和删除重复元素

    3.可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典

    4.因为set存储的是无序集合,所以我们没法通过索引来访问。访问 set中的某个元素实际上就是判断一个元素是否在set中。

1.创建集合

s=set()#创建一个空集合

s1={1,2,3,'a','python'}

2.删除重复的元素

集合是一个无序不重复元素的序列(意思是有重复的会自动删除,每次打印元素的位置不一定)

3.成员关系测试(检测某个成员是否在集合中)

案例:从终端输入5位数,以空格隔开,把这5位数存入列表中,剔除重复的数据,打印出来

#提示,列表转集合,集合转列表

a=input("请输入5位数字:")

mylist=a.split()

print(mylist)

b=set(mylist)

c=list(b)

print(c)

4.集合常用操作

    1.添加元素

    2.删除元素

    3.删除整个集合

    4.获取集合的长度

    5.不支持改元素

集合操作-添加元素

格式:

集合.add(元素)

格式:

集合.update(元素)

区别:

add不能添加列表,update可以

update是将字符串中的拆分成字符进行追加

add,是当做整体追加在集合中

#案例:从终端输入一个数字就加入集合中,然后打印,又输入一个数字,然后打印,直到输入-1,退出输入

#然后打印最终的集合

ms=set()

while 1:

a=int(input("请输入一个数字:"))

if a==-1:

    break

    ms.add(a)

print(ms)

print(ms)

#案例:从终端输入一个字符串就加入集合中,然后打印,又输入一个字符串,然后打印,直到输入q,退出输入

#然后打印最终的集合,字符串要分开存储,如输入hello,存储的列表是{'h','e','l','0'}

ms=set()

while 1:

a=input("请输入一个字符串:")

if a=='q':

    break

    ms.update(a)

print(ms)

print(ms)

集合操作-删除元素及删除整个集合

格式:

集合.remove(元素)  # 元素如果不存在会引发KeyError

集合.discard(元素)  # 元素如果不存在不发生任何事

集合.pop()  # 集合元素是字符串类型时删除随机元素。 集合元素是其他数据类型时,删除左边第一个元素

del 集合名 #删除整个集合

#案例:有集合{1,2,3,'hello','world'},删除全部字符串,然后最左边第一个元素

a={1,2,3,'hello','world'}

a.discard("hello")

a.discard("world")

a.pop()

print(a)

集合操作-获取集合的长度

格式:

len(集合名)

#案例:有集合{1,2,3,4,'hello','a'},保留1个元素,其他的删除,假如元素个数不确定

s={1,2,3,4,'hello','a'}

for i  in range(len(s)-1):

            s.pop()

  print(s)

集合的集运算

集合的交集,并集,差集,对称差集的运算

{1,2,3,4}交集{4,5,6,7} -->4   交集(&)

{1,2,3,4}并集{4,5,6,7} ->1,2,3,4,5,6,7  并集(|)

{1,2,3,4}差集{4,5,6,7} ->1,2,3  差集(-)

{1,2,3,4}对称差集{4,5,6,7}->1,2,3,5,6,7 4同时出现在两个集合中,不选它 对称差集(^)

#案例:使用花括号和set创建各一个集合,然后对集合进行交、并、差、对称差运算

s={1,2,3,4,5,6}

s1=set([6,7,8,9,10])

print(s&s1)

print(s|s1)

print(s-s1)

print(s^s1)