Python的列表,元组,字典,集合

目录

列表的一些方法:

list添加方法:

list删除方法:

list修改方法:

list查找方法:

list其他方法:

列表作为堆栈使用

实现弹栈(先进的后出)

实现队列(先进先出)

列表推导式

字典:

dict增加方法:

dict删除方法:

dict修改方法:

dict查找方法:

dict其他方法:

元组:

注意:

集合:

set添加方法:

set删除方法:

set修改方法:

set查找方法:


 


 

 

列表的一些方法:

list添加方法:

list.append(obj)   : 作用: 将某元素添加在列表的最后      参数:所有类型(无论什么类型,都按照 原类型将其添加)   无返回值

demo = [1,2,3]
demo.append([4,5,6])
print(demo)

# [1,2,3,[4,5,6]]

list.extend(obj)  : 作用:在列表的末尾将新元素添加 

demo = [1,2,3]
demo.extend([4,5,6])
print(demo)

# [1,2,3,4,5,6]

 list.insert(index , object)   :  作用:在指定位置添加某元素(该元素的索引则是指定位置的索引值)   无返回值

注意:当index大于实际列表的索引时,则会将该元素添加到列表的末尾,并不会抛出错误

demo = [1,2,3,4]
demo.insert(0 , 'demo')
print(demo)

# ['demo', 1 ,2, 3, 4]

list删除方法:

list.remove() : 作用 : 移除指定元素

del list[索引]  : 作用: 移除指定元素

list.pop(index)   : 作用 : 移除指定索引的元素,并返回该元素(如index为空,则移除最后一个)    返回值:被移除元素的类型

list.popleft():  作用 :从左边开始移除指定索引的元素,并返回该元素(如index为空,则移除第一个)

注意:当Index大于实际列表的索引时,则会抛出越界错误  IndexError: pop index out of range

popleft() 方法必须导入  from collections import deque ,必须使用 deque()方法创建列表

demo = [1,2,3]
demo_ = demo.pop(1)
print(demo)
print(demo_)

# [1,3]
# 2
from collections import deque

demo = deque([1,2,3])
    count = 0
    all_count = len(demo)
    while count < all_count:
        print(demo.popleft())
        count += 1

# 1  2  3

list.clear()   作用:清空列表

list修改方法:

list[索引] = ‘新值’

list查找方法:

list[索引]

int  index(值)  :  作用 : 返回值的索引

list其他方法:

list.sort() : 作用:对列表进行排序   参数:reverse  (默认是False--升序,,如果为True---降序)        无返回值

list.reverse() : 作用 :将列表元素倒序输出,但并不会进行排序                               无参 无返回值

list.count('')  : 作用:统计出现的次数

 

列表作为堆栈使用

实现弹栈(先进的后出)

def resavea():
    demo = input("请输入内容:")
    demo_2 = list(demo)
    num = 0
    demo_2_length = len(demo_2)
    while num < demo_2_length:
        print(demo_2.pop(), end=", ")
        num += 1

实现队列(先进先出)

def demo2():
    demo = [1,2,3]
    count = 0
    all_count = len(demo)
    while count < all_count :
        print(demo[0])
        demo.remove(demo[0])
        count += 1

列表推导式

简单的说就是,对每一个元素进行一些操作(加减乘除,if,while,),最后组成新的列表

demo = [1,2,3]
new_demo = [de*2 for de in demo ]
new_demo2 = [de*2 for de in demo if de >= 2]  #会去先判断每个de满不满足条件,满足才输出
old_demo = [[de*2,de] for de in demo]
print(new_demo)
print(new_demo2)
print(old_demo)

# [2,4,6]
# [4, 6]
# [[2, 1], [4, 2], [6, 3]]
demo = [1,2,3]
demo2 = [4,5,6]
new_demo = [x*y for x in demo for y in demo2]
print(new_demo)
# ——————等同于——————
demo3 = []
for x in demo:
    for y in demo2:
        a = x * y
        demo3.append(a)
print(demo3)

# [4, 5, 6, 8, 10, 12, 12, 15, 18]
# [4, 5, 6, 8, 10, 12, 12, 15, 18]

 

字典:

(dict)不可哈希,属于可变数据。

查找速度最快,因为可以根据键直接找到值,而列表需要从第一个开始遍历。

键是不可变的,也是唯一的。

dict增加方法:

dict setdefault(key,default=None)  :   作用:返回该键的值,,如果键不存在,则将键以及default对应的值作为键值对存入字典

dic = {'A':1,'B':2,'C':3}
dic.setdefault('我是新添加的键','我是新添加的值')
print(dic)

# {'A': 1, 'B': 2, 'C': 3, '我是新添加的键': '我是新添加的值'}

dict[键 ] = 值  : 如果键不存在,则将该键值对添加进去。 如果键存在,则修改值。

dic = {'A':1,'B':2,'C':3}
dic['我是新添加的键'] = '我是新添加的值'
print(dic)

# {'A': 1, 'B': 2, 'C': 3, '我是新添加的键': '我是新添加的值'}

dict删除方法:

pop(key,default)  :  删除指定键的值,返回值为被删除的值(如果default定义了其他变量,则返回default的值)。   

                              如果该键不存在,但是default没有定义,则会报错  。如果default定义了,即使键不存在,也返回default的值

dic = {'A':1,'B':2,'C':3}
print(dic.pop('D',"我被删了"))
dic2 = {'A':1,'B':2,'C':3}
print(dic2.pop('A',"我被删了"))

popitem()  : 随机删除一对键和值。  (题外话:因为在Python3.6版本后,字典输出是按照输入顺序输出的。所以 popitem()方法一直删                                                              除的是最后一对。但实际情况下,字典是无序的

dic = {'A':1,'B':2,'C':3}
dic.popitem()
print(dic)

# {'A': 1, 'B': 2}

clear()   : 清空字典

del dic["A"] : 删除存在的键值对   不存在则报错    注意:(如果是 del dic。。则会将 dic 这个字典从内存中去除掉

dic = {'A':1,'B':2,'C':3}
del dic['A']
print(dic)
# {'B': 2, 'C': 3}

 

dict修改方法:

dic [存在的键名] = 修改后的值

dic = {'A':1,'B':2,'C':3}
dic['A'] = "我是修改后的值"
# {'A':"我是修改后的值",'B':2,'C':3}

update(dict2)   :   作用:将字典2的键值对填充到字典1里面  键名重复的则值覆盖

dic = {'A':1,'B':2,'C':3}
dic2 = {'A':1,'B':3,'C':4}
dic.update(dic2)
print(dic)
# {'A': 1, 'B': 3, 'C': 4}

dict查找方法:

dic["键名"]

get(key,default = None) : 作用 : 查找键的值, 如果键不存在,则返回default的值      根据键找值

#---根据值找键---
a = "a"
dic = {4:"a",2:"b",6:"a"}
lis_key = dic.keys()
for key_li in lis_key:
    if dic.get(key_li) == a:
        print(key_li)
# 4

dict其他方法:

keys()   :  返回所有键     可转换为列表 (是一个高仿列表,只能使用for循环)

values()   :   返回所有值     可转换为列表  (是一个高仿列表,只能使用for循环)

items() : 返回一个所有键值的元组数组

** formkeys (seq[]  , value[])  : 创建一个新字典,seq为键,value为值

注意:这个方法有坑    当 value 是一个列表或集合,字典 (可变类型)时 ,,,,但对字典中的任何一个键的值进行修改时,其他所有的也会跟着发生变化

dic = dict.fromkeys(['a','b','c'])
print(dic)

dic = dict.fromkeys(['a','b','c'],['1','2'])
dic['a'].append('3')
print("(列表)所有的都会变:",dic)

dic = dict.fromkeys(['a','b','c'],{'1':'a','2':'b'})
dic['a']['1'] = '3'
print("(字典)所有的都会变:",dic)

# {'a': None, 'b': None, 'c': None}
# (列表)所有的都会变: {'a': ['1', '2', '3'], 'b': ['1', '2', '3'], 'c': ['1', '2', '3']}
# (字典)所有的都会变: {'a': {'1': '3', '2': 'b'}, 'b': {'1': '3', '2': 'b'}, 
#                     'c': {'1': '3', '2': 'b'}}

 

 

 

元组:

元素不能修改

注意:

demo = ("")
print(type(demo))

demo2 = ("", )
print(type(demo2))

# <class> str
# <class> tuple

 

集合:

无序(没有下标),不重复,

首次创建集合 必须使用  set()

set添加方法:

add()    :  添加元素

update()  : 给集合添加元素

set删除方法:

remove()   : 删除指定元素

pop(): 移除随机元素

clear() : 清空

set修改方法:

先删后加

set查找方法:

for循环遍历

 

  • 列表 /字典循环删除或添加元素
# 第一种方式:
li = ['1','2','3','4']
for i in range(len(li)):
    li.remove(i)
print(li)

# 第二种方式:
li = ['1','2','3','4']
li2 = []
for i in li:
    li2.append(i)
for j in li2:
    li.remove(j)
print(li)

# 第三种方式,不推荐
li = ['1','2','3','4']
for i in li:
    li.clear()
print(li)

如果需要通过for循环进行对字典的删除操作:

dic = {'a':1,'b':2,"c":3}
li = []
for i in dic:
    li.append(i)
for j in li:
    dic.pop(j)
print(dic)

 

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python编程语言中,有四种常用的集合数据类型,它们分别是列表(List)、元组(Tuple)、字典(Dictionary)和集合(Set)。列表是一种有序和可更改的集合,允许重复的成员。元组是一种有序且不可更改的集合,也允许重复的成员。字典是一个无序、可变且有索引的集合,其中没有重复的成员。而集合是一种无序和无索引的集合,没有重复的成员。这四种集合数据类型在Python中都有着不同的特点和用途。 在Python中,列表元组和字符串都属于序列,它们的元素都可以通过编号进行访问。而字典则属于映射,其中的元素是以键值对的形式存在的。集合则不属于序列或映射中的任何一种,它是一种独立的数据类型,用于存储一组不重复的元素。 总结起来,Python中的列表(List)、元组(Tuple)、字典(Dictionary)和集合(Set)都是常用的集合数据类型,它们各自有着不同的特点和用途。列表是有序和可更改的集合元组是有序且不可更改的集合字典是无序、可变且有索引的集合集合是无序和无索引的集合。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [浅谈python四种集合数据类型—【列表元组集合字典】](https://blog.csdn.net/QWERTYzxw/article/details/121479048)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [python 元组集合字典](https://download.csdn.net/download/weixin_38603219/13752298)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值