对比Python中的列表元组字典集合字符串等之间异同
Posted yzx-sir
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对比Python中的列表元组字典集合字符串等之间异同相关的知识,希望对你有一定的参考价值。
1.数据类型
列表、元组、字典、集合、字符串均属于python3的标准数据类型。字符串和元组属于不可变数据,即创建后不可修改。列表、字典、集合属于可变数据,即创建后可以修改元素。
2.创建有元素的对象
3.创建没有元素的对象
列表使用eval()或list()或中括号[]进行创建,元素之间使用逗号分隔。若不添加任何元素,则创建空列表。
元组使用eval()或tuple()或小括号()进行创建,元素之间使用逗号分隔。若不添加任何元素,则创建空元组。如果元组只有一个元素,则必须在这个元素后面加上逗号。
字典使用eval()或dict()函数或者大括号创建,元素之间用逗号分隔。每个元素必须是一个键(key)值(value)对。若不添加任何元素,则创建空字典。
集合使用eval()或set()或进行创建,元素之间使用逗号分隔。由于用于创建空字典,所以只能通过不传参的set()来创建空集合。
字符串使用str()或单引号\'\'或双引号""进行创建,引号内元素为一个整体,不需要使用分隔符。若引号内不添加字符或str()不传参,则创建空字符串
4.元素的类型
5.元素是否可以重复
6.元素顺序
列表内的元素可以为任意类型。元素之间可以重复。元素顺序遵循创建时的顺序。
元组内的元素可以为任意类型。元素之间可以重复。元素顺序遵循创建时的顺序。
字典中的键只能为数字、字符串、元组类型,值可以为任意类型。键(key)是唯一的,可以多次赋值(value)。若对应的键多次赋值,则后面赋的值会覆盖前面赋的值。元素顺序遵循创建时的顺序。
集合内的元素只能为数字、字符串、元组类型。集合会在创建时自动剔除重复元素。元素顺序随机。
set_ = 1, 2.5, 1, "a", ("b",)print(set_) # \'a\', 1, 2.5, (\'b\',)
字符串创建时,引号内可以是任意字符。若在引号前加r,则不对引号内的字符转义。不存在重复元素和元素顺序的说法,因为字符串创建后就不能修改了。
str_ = "123\\tabc"print(str_) # 123 abc
str_ = r\'123\\tabc\'print(str_) # 123\\tabc
7.访问元素
8.修改元素
列表、元组、字典、集合、字符串都可以使用for遍历所有元素。
列表使用索引访问和修改指定位置元素。
元组使用索引访问指定位置元素。元组创建后不可修改。
字典使用键(key)访问和修改指定元素。
集合不能使用索引访问和修改元素。但可以通过先删除后添加实现修改元素。
字符串使用索引访问指定位置元素。字符串创建后不可修改。
9.切片
可以使用索引访问的都可以切片。即列表、元组、字符串可切片。
10.添加元素
11.删除元素
列表使用list.append(单个元素)方法在list列表末端增加一个元素;使用list.extend([元素1,元素2])在list列表末端增加多个元素;使用list.insert(索引,元素)在列表指定位置增加一个元素。使用list.remove(元素)从列表中删除一个元素;使用del list[索引]从列表中删除指定位置的元素;使用list.pop(索引)从列表中删除指定位置元素,返回值为删除的元素值,如果空参默认删除末尾元素;使用list.clear()清空整个列表。
元组一旦创建就不可修改,所以没有添加和删除元素的方法。可将元组转化为列表进行相应操作后再转为元组。
字典使用dict[key]=value添加元素,如果已存在该元素,则将其覆盖;使用dict.setdefault(key,value)添加元素,若该元素已存在,则不会将其覆盖,若只传一个参数,则key为该参数,value为None。使用dict.pop(key)删除元素,此方法必须传入一个key,若除key之外还传了一个参数,则这个参数作为key不存在时的方法返回值;使用dict.popitem()删除随机的一个元素;使用del dict[key]删除指定元素,使用dict.clear()清空整个字典。
集合使用set.add(元素)添加元素;使用set.update(元素)添加元素,此方法传参可以为多个,添加元素时会将参数中的列表、元组、字典、集合进行遍历添加。使用set.remove(元素)删除元素,元素不存在会报错KeyError;使用set.discard(元素)删除元素,元素不存在不会报错;使用set.pop()随即删除元素。
字符串本质上不存在添加和删除元素的方法。可使用str.replace(old_str,new_str)进行字符串替换完成添加字符和删除字符的操作,也可以将其转化为列表进行添加和删除操作。
python--列表字典元组集合对比
#概括:list dict tuple set显示形式、增加、删除、修改比较
#list 集合形式 有顺序
list=[]
list=[1,2,3]
list2=[
("name1", "y1"),
("name2", "y2")
]
#----------------------------------------------------------------------
#dict 字典形式 无序、key与value
dict={}
dict={"name1":"apple","name2":"egg"}
#----------------------------------------------------------------------
#tuple 元组形式 (tuple和list非常类似,但是tuple一旦初始化就不能修改,其嵌套list内容可变)
#定义空
tuple()
#定义一个元素必须加”,”
tuple=(1,)
#----------------------------------------------------------------------
#set 集合形式 1 无序 2 空用() 有值{} 3、集合主要作用去重复(例如将某一list 变为set形式后,list内重复元素保留唯一)
set1=set()
set2={1,2,3}
#----------------------------------增加------------------------------------
#列表增加
list=[1,2,3]
#list 增加一(尾部追加)
list.append("t5")
#list 增加二(指定位置插入)
list.insert(1,"t6")
#---------------------------------------------------------------------
#字典增加
dict={"name1":"apple","name2":"egg"}
dict["name3"]="orange"
#---------------------------------------------------------------------
#集合增加
set={"apple","egg"}
#set 增加一 (一个元素)
set.add("orange")
#set 增加二 (n个元素)
set.update(["test1","test2"])
#----------------------------------删除------------------------------------
#列表删除
list=[1,2,3,4,5,6,7]
#list 删除一 (指定元素) 如果元素不存在则报错
list.remove(2)
#list 删除二(指定索引 0删除第一位 空删除最后一位) 但是集合set.pop 不能指定0
list.pop()
#list 删除三(指定索引)
del list[1]
#---------------------------------------------------------------------
#字典删除
dict={"name1":"apple","name2":"egg"}
#dict 删除一(指定key)
del dict["name1"]
#---------------------------------------------------------------------
#集合删除
set={"apple","egg","egg1","egg2"}
#set 删除一 (删除任意元素,因其无序,不能指定索引,只能为空)
set.pop()
#set 删除二 (删除指定元素)如果元素不存在则报错
#set.remove("egg")
#set 删除三 (删除指定元素)如果元素不存在不报错
set.discard("egg1")
#----------------------------------修改------------------------------------
#列表修改
list=[6,7,8]
#list 修改一(指定位置修改)
list[2]="t"
#---------------------------------------------------------------------
#字典修改
dict={"name1":"apple","name2":"egg"}
dict["name2"]="orange"
#---------------------------------------------------------------------
#set 修改没有发现
#----------------------------------输出------------------------------------
#列表输出
list=[6,7,8]
#list 方法一:直接输出名字
print(list)
#方法二:循环输出名字
for i in list:
print(i)
#---------------------------------------------------------------------
#字典输出
dict={"name1":"apple","name2":"egg"}
dict["name2"]="orange"
#dict 方法一:直接输出名字
print(dict)
#方法二:循环输出名字 只输出值
for i in dict:
print(dict[i])
#---------------------------------------------------------------------
#集合输出
set={"apple","egg"}
set.update(["777","888"])
#dict 方法一:直接输出名字
print(set)
#方法二:循环输出名字
for i in set:
print(i)
以上是关于对比Python中的列表元组字典集合字符串等之间异同的主要内容,如果未能解决你的问题,请参考以下文章