【Python_029】内置数据结构,列表 | 字典 | 集合 | 元组

本文重学Python基础,探讨了Python中的四个主要内置数据结构:列表、字典、集合和元组。列表的remove、pop、extend、append和insert方法被详细解释,强调了列表复制的正确方式。字典的特性包括其无序性、键值对的关键作用,以及如何避免KeyError。集合的创建、拼接和交并差操作得到介绍,同时提到了空集合的表示。元组因其不可变性及性能优势被讨论,包括元组与单个元素的区别。最后,函数注解作为附加内容进行了提及。
摘要由CSDN通过智能技术生成

最近重学python基础,感觉基础知识还是得扎实才能走得更远,整理了一些笔记和大家分享。参考书目:《Head First Python》

列表

  • remove只能在知道要删的值时使用, pop取可选索引值作为参数
test = [1,2,3,4]
test.remove(3)
test

'''
[1,2,4]
'''

test.pop(1)
test
'''
#pop 不指定参数则默认弹出最后一个。 
pop的元素可被解释器回收,也就是可被赋值 如 x = test.pop(),但remove不可以做到
[1,4]
'''
  • extend是将列表中所有元素依次加在最后,append是将整个列表加在最后,insert(index,value)
x1 = [1,2,3]
x1.append([4,5])
x1
'''
[1, 2, 3, [4, 5]]
#如果append([]),会把一个空列表作为元素加在最后,变成[1,2,3,[]]
'''

x2 = [1,2,3]
x2.extend([4,5])
x2
'''
[1, 2, 3, 4, 5]
#如果extend([]),和原来没啥变化
'''
x2.insert(2,6)
x2
'''
[1,2,6,3,4,5]
'''

  • 列表的复制

    赋值操作符不能把一个列表复制到另一个列表。拷贝值用list.copy()

    a = [1,2,3]
    b = a
    b.append(4)
    a
    ''' [1,2,3,4]'''
    a.append(5)
    b
    ''' [1,2,3,4,5]'''
    #赋值让两个变量指向同一组数据,共享列表引用
    c = b.copy()
    b.append(6)
    c
    '''[1,2,3,4,5]'''
    

字典

  • 字典无序。键值对是关键。字典查找速度快
for k,v in dic.items():
	print (f"{k} is {v}.")
  • **字典的键必须初始化。**setdefault方法,防止KeyError(如果试图访问一个不存在的键的关联值会报错)
vowels = ['a','e','i','o','u']
word = input("Input a word: ")
found = {}

for letter in word:
    if letter in vowels:
        found.setdefault(letter,0) #用于初始化,如果该键已经存在,则这行代码没有影响
        found[letter] +=1

for k,v in found.items():
    print(f"{k} has appeared {v} times")

'''
Input a word: haaaley
a has appeared 3 times
e has appeared 1 times
'''

集合

  • 集合用大括号表示, 也可以使用set(str),把字符串里每个字母变成一个集合元素
  • 集合拼接用union, set1.union(set(str2)), 结果也是一个集合
  • 比较两个集合中差异,set_a.difference(set_b)
  • 集合取交集, set_a.intersection(set_b)
  • 空集合为set(), 尽管集合用{}表示, 但{}被认为是空字典
#判断词语中含有哪些元音的程序可以简化成如下(不需要加if判断)
vowel = set('aeiou')
word = input("Input a word: ")
result = set(word).intersection(vowel)
for letter in result:
    print(letter)

元组

  • 元组不可变(优点是性能高,列表可变但可变总会带来内存的影响)
  • 元组在构建时必须含有一个逗号。(‘a’) 是字符串,(‘a’,)为元组

函数

  • 函数注解
def search4vowels(word:str)->set: #帮助注解参数类型以及返回类型
    '''this is a docstring'''
    vowels = set('aeiou')
    return vowels.intersection(set(word))

help(search4vowels) #可返回函数注解以及docstring
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值