Python 中字符串、列表、元组、集合及字典之间的相互转换

Python 中包含几种基本的数据类型:

  • 列表(list): 是长度可变有序的数据存储容器,可以通过下标索引取到相应的数据。
  • 元组(tuple): 固定长度不可变的顺序容器,访问效率高,适合存储一些常量数据,可以作为字典的键使用。
  • 集合(set): 无序,元素只出现一次,可以自动去重。
  • 字典(dict): 长度可变的 hash 字典容器。存储的方式为键值对,可以通过相应的键获取相应的值,key 支持多种类型。key 必须是不可变类型且唯一。

这些数据类型之间都可以通过不同的方法进行相互转换:

1.字符串转换为其他数据类型

# 字符串转列表
str1 = 'abc'
print(list(str1))  # ['a', 'b', 'c']
# 切分字符串
str2 = 'a b c'
print(str2.split())  # ['a', 'b', 'c']
# 字符串转元组
print(tuple(str1))  # ('a', 'b', 'c')
# 字符串转集合
print(set(str1))   # {'a', 'c', 'b'}
# 字符串转字典
str2 = "{'a': 97, 'b': 98}"
print(eval(str2))  # {'a': 97, 'b': 98}

2.列表转换为其他数据类型

# 列表转字符串
list1 = ['a', 'b', 'c']
print(''.join(list1))  # abc   以指定字符分隔字符串
print(str(list1))   # "['a', 'b', 'c']"
# 列表转元组
list1 = [1, 2, 3]
print(tuple(list1))  # (1, 2, 3)
# 列表转集合(去重)
list1 = [1, 2, 2, 3]
print(set(list1))  # {1, 2, 3}
# 两个列表转字典
list1 = ['key1', 'key2', 'key3']
list2 = ['value1', 'value2', 'value3']
print(dict(zip(list1, list2)))  # {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
# 嵌套列表转字典
list1 = [['key1', 'value1'], ['key2', 'value2']]
list2 = [('key1', 'value1'), ('key2', 'value2')]
print(dict(list1))  # {'key1': 'value1', 'key2': 'value2'}
print(dict(list2))  # {'key1': 'value1', 'key2': 'value2'}

3.元组转换为其他数据类型

# 元组转字符串
tuple1 = ('a', 'b', 'c')
print(''.join(tuple1))   # 'abc'
# 元组转列表
tuple1 = (4, 5, 6)
print(list(tuple1))  # [4, 5, 6]
# 元组转集合
print(set(tuple1))  # {4, 5, 6}
# 两个元组转字典
tuple1 = ('a', 'b')
tuple2 = (97, 98)
print(dict(zip(tuple1, tuple2)))  # {'a': 97, 'b': 98}
# 嵌套元组转字典
tuple3 = (('a', 97), ('b', 98))
print(dict(tuple3))  # {'a': 97, 'b': 98}

4.集合转换为其他数据类型

# 集合转字符串
set1 = {
    
    'a', 'b', 'c', 'd'}
print(''.join(set1))  # 'abcd'
# 集合转列表
set1 = {
    
    7, 8, 9}
print(list(set1))  # [8, 9, 7]
# 集合转元组
print(tuple(set1))  # (8, 9, 7)
# 两个集合转字典
set1 = {
    
    'a', 'b'}
set2 = {
    
    97, 98}
print(dict(zip(set1, set2)))  # {'a': '97', 'b': 98}
# 集合转字典
set3 = {
    
    ('a', '97'), ('b', 98)}
print(dict(set3))  # {'a': '97', 'b': 98}

5.字典转换为其他数据类型

# 字典转字符串
dict1 = {
    
    'a': 97, 'b': 98}
print(str(dict1))  # "{'a': 97, 'b': 98}"
# 字典转列表
dict1 = {
    
    'a': 97, 'b': 98}
print(list(dict1.items()))  # [('a', 97), ('b', 98)]
# 字典转元组
print(tuple(dict1.items()))  # (('a', 97), ('b', 98))
# 字典转集合
print(set(dict1.items()))  # {('b', 98), ('a', 97)}

6.字典键值对的相互转换

# 键值对的交换(键唯一)
# 字典推导式(常用)
dict1 = {
    
    'a': 1, 'b': 2}
dict_new = {
    
    value: key for key, value in dict1.items()}
print(dict_new)  # {1: 'a', 2: 'b'}

dict1 = {
    
    'a': 1, 'b': 2}
dict_new = {
    
    }
for key, val in dict1.items():
    dict_new[val] = key
print(dict_new)  # {1: 'a', 2: 'b'}

dict1 = {
    
    'a': 1, 'b': 2}
dict_new = dict([val, key] for key, val in dict1.items())
print(dict_new)  # {1: 'a', 2: 'b'}

dict1 = {
    
    'a': 1, 'b': 2}
dict_new = dict(zip(dict1.values(), dict1.keys()))  # zip()
print(dict_new)  # {1: 'a', 2: 'b'}

猜你喜欢

转载自blog.csdn.net/qq_44214671/article/details/113032722