1.Python快速入门

1.1 数据结构及方法

1.1.1 列表

列表是一种存储数据的容器。

  • 列表中的元素是不受任何限制的,可以存放数值、字符串及其他数据结构的内容。
  • 列表是一种序列,即每个列表元素是安装顺序存入的。
  • 列表是一种可变类型的数据结构,即可以实现对列表的修改,包括增加、删除和修改列表中的元素值。

“列表是一种序列”指的是可以通过索引(或下标)的方式实现列表元素的获取,Python中的索引都是英文状态下的方括号表示,而且,对于位置索引来说,都是从0开始的。下面有四种常见的索引方式。
1、正向单索引

list1 = ['张三','男',33,'浙江嘉兴','硕士','未婚',['身高176cm','体重80kg']]
#取出第一个元素
print(list1[0])
#取出第四个元素
print(list1[3])
#取出身高体重的信息
print(list1[6])

OUT:
张三
浙江嘉兴
['身高176cm', '体重80kg']

列表的最后一个元素也是一个列表(一般称为嵌套列表),要去出嵌套列表中的元素要用两层索引实现。

#取出最后一个元素
print(list1[6])
#取出身高
print(list1[6][0])
#取出体重
print(list1[6][1])

OUT:
['身高176cm', '体重80kg']
身高176cm
体重80kg

2、负向单索引
负向单索引是指在正向单索引的基础上添加一个符号‘-’,所表达的含义是从右往左的方向读取元素,可以用[-n]表示。最后一个元素为[-1],没有[-0]这一说,这是初学者容易犯的错误。

#负单向索引取出列表最后一个元素
print(list1[-1])
#取出最后一个元素中的第一个元素
print(list1[-1][0])
#取出最后一个元素中的第二个元素
print(list1[-1][1])

OUT:
['身高176cm', '体重80kg']
身高176cm
体重80kg

3、切片索引
切片索引指的是按照固定的步长,连续取出多个元素,可以用[start : end : step]表示。start表示开始索引,end表示结束索引,step表示步长(默认为1)。

list2 = ['浙江','江苏','北京','安徽','福建','河南','湖北']
#取出浙江~北京三个元素
print(list2[0:3])
#step为2取数据
print(list2[0:7:2])
#取出最后三个元素
print(list2[-3:-1])

OUT:
['浙江', '江苏', '北京']
['浙江', '北京', '福建', '湖北']
['福建', '河南']

不知道大家有没有发现一个问题,list2[-3:-1]取出的数据没有最后一个元素,因为左闭右开的原则,最后一个数据没法取到。为了解决这个问题我们引入无限索引。
4、无限索引
无限索引是指在切片过程中不限定起始元素的位置或者终止元素的位置,或者两个都不限定。

#取出列表的所有元素
print(list2[::])
#取出奇数位置的元素
print(list2[::2])


OUT:
['浙江', '江苏', '北京', '安徽', '福建', '河南', '湖北']
['浙江', '北京', '福建', '湖北']

5、列表元素的增加
如果需要往列表中添加元素,Python提供三种方法,即append、extend和insert。

#append是列表所特有的方法,改方法是在列表的尾部添加数据,每次只能添加一个数据。
list3 = [1,2,3,4]
#在list3列表的末尾添加一个元素5
list3.append(5)
print(list3)

OUT:
[1, 2, 3, 4, 5]

extend方法可以在列表中添加多个元素。

#extend方法穿入的值一定要是一个列表,就算只有一个元素也要包装成列表
list4 = ['a','b','c','d']
#在list4列表的末尾添加['e','f','g']
list4.extend(['e','f','g'])
print(list4)

OUT:
['a', 'b', 'c', 'd', 'e', 'f', 'g']

insert方法可以在任何位置插入数据

#insert方法可以传一个值也可以传一个列表
list5 = ['a','b','c','d']
#在列表的索引为0的位置上添加一个列表
list5.insert(0,['-b','-a'])
#在列表的索引为4的位置上添加一个元素t
list5.insert(5, 't')
print(list5)

OUT:
[['-b', '-a'], 'a', 'b', 'c', 'd', 't']

6、列表元素的删除
删除元素有三个方法,pop、remove和clear。

list6 = [1,2,3,4,5]
#删除一个元素
list6.pop()
print(list6)

OUT:
[1, 2, 3, 4]

list6 = ['r','o','m','o','v','e']
#删除一个字符'o'
list6.remove('o')
print(list6)

OUT:
['r', 'm', 'o', 'v', 'e']

list6 = ['r','o','m','o','v','e']
#删除列表中所有的元素
list6.clear()
print(list6)

OUT:
[]

7、列表元素的修改

list7 = ['江南','苏北','渭南','川西']
list7[1] = '苏南'
print(list7)

OUT:
['江南', '苏南', '渭南', '川西']

还有一些其他方法。

list8 = [7,3,9,11,4,6,10,3,7,4,4,3,6,3]
#计算列表中元素3的个数
print(list8.count(3))
#找出元素6所在的元素
print(list8.index(6))
#列表元素的颠倒
list8.reverse()
print(list8)
#列表元素的降序
list8.sort(reverse=True)
print(list8)

OUT:
4
5
[3, 6, 3, 4, 4, 7, 3, 10, 6, 4, 11, 9, 3, 7]
[11, 10, 9, 7, 7, 6, 6, 4, 4, 4, 3, 3, 3, 3]

1.1.2 元组

元组与列表相似。

  • 元组用()表示,可以是不同的数值类型,也可以是不同的数据结构。
  • 元组仍是一种序列,所以几种获取列表元素的索引方法可以使用到元组对象中。
  • 与列表最大的区别是元组是一种不可变容器。

1.1.3 字典

字典是一种很常用的数据结构,它与json格式的数据非常相似,核心就是以键值对的形式 存储数据。

  • 构造字典对象需要使用大括号表示。
  • 键在字典中是唯一的,不能重复。值可以是单个值也可以是多个值组成的列表、字典或元组。
  • 字典不再是序列,无法通过位置索引完成元素值的获取,只能通过键索引实现。
  • 字典和列表一样,都是可变的数据结构。
dict1 = {'姓名':'张三','年龄':33,'性别':'男','子女':{'儿子':'张四','女儿':'张美'},'兴趣':['踢球','打篮球','唱歌']}
print(dict1)
print(dict1['兴趣'])
print(dict1['子女']['儿子'])
print(dict1['兴趣'][1])

OUT:
{'姓名': '张三', '年龄': 33, '性别': '男', '子女': {'儿子': '张四', '女儿': '张美'}, '兴趣': ['踢球', '打篮球', '唱歌']}
['踢球', '打篮球', '唱歌']
张四
打篮球

1、字典元素的增加
对字典元素的增加有三种方法,分别是setdefault方法、uodate方法和键索引方法。

dict2 = {'姓名':'张三','年龄':33,'性别':'男','子女':{'儿子':'张四','女儿':'张美'},'兴趣':['踢球','打篮球','唱歌']}
#setdefault方法
dict2.setdefault('户籍','上海')
#update方法
dict2.update({'学历':'工学硕士'})
#键索引方法
dict2['身高']=178
print(dict2)

OUT:
{'姓名': '张三', '年龄': 33, '性别': '男', '子女': {'儿子': '张四', '女儿': '张美'}, '兴趣': ['踢球', '打篮球', '唱歌'], '户籍': '上海', '学历': '工学硕士', '身高': 178}

setdefault方法接受两个参数,第一个参数为字典的键,第二个参数是键对应的值;
update方法从字面理解是对字典的更新,但是也可以增加元素,与setdefault方法不同的是该方法接受的是一个字典对象。
键索引实现,如果原字典没有该键,就往字典里添加,如果有就更新元素。

2、字典元素的删除

dict3 = {'姓名':'张三','年龄':33,'性别':'男','子女':{'儿子':'张四','女儿':'张美'},'兴趣':['踢球','打篮球','唱歌']}
#删除字典中女儿的姓名
dict3['子女'].pop('女儿')
print(dict3)
#删除字典中的任意一个元素
dict3.popitem()
print(dict3)
#清空字典元素
dict3.clear()
print(dict3)

OUT:
{'姓名': '张三', '年龄': 33, '性别': '男', '子女': {'儿子': '张四'}, '兴趣': ['踢球', '打篮球', '唱歌']}
{'姓名': '张三', '年龄': 33, '性别': '男', '子女': {'儿子': '张四'}}
{}

pop方法必须指定需要删除的键。popitem方法不传递任何参数,它的功能就是删除字典中的某个元素。clear方法可清楚字典中的所有元素。

3、字典元素的修改

dict4 = {'姓名':'张三','年龄':33,'性别':'男','子女':{'儿子':'张四','女儿':'张美'},'兴趣':['踢球','打篮球','唱歌']}
#将年龄的值改为35
dict4.update({'年龄':35})
print(dict4)
#将兴趣中的唱歌改为跳舞
dict4['兴趣'][2] = '跳舞'
print(dict4)

OUT:
{'姓名': '张三', '年龄': 35, '性别': '男', '子女': {'儿子': '张四', '女儿': '张美'}, '兴趣': ['踢球', '打篮球', '唱歌']}
{'姓名': '张三', '年龄': 35, '性别': '男', '子女': {'儿子': '张四', '女儿': '张美'}, '兴趣': ['踢球', '打篮球', '跳舞']}

还有一些其他的方法

dict5 = {'联赛':['CBA','NBA','NBL'],
         '球星':['yi','jams','maya more'],
         '评分':[9.0,9.1,9.8]}
#取出评分对应的值
print(dict5.get('评分'))
#取出所有的键
print(dict5.keys())
#取出所有的值
print(dict5.values())
#取出所有的键值对
print(dict5.items())

OUT:
[9.0, 9.1, 9.8]
dict_keys(['联赛', '球星', '评分'])
dict_values([['CBA', 'NBA', 'NBL'], ['yi', 'jams', 'maya more'], [9.0, 9.1, 9.8]])
dict_items([('联赛', ['CBA', 'NBA', 'NBL']), ('球星', ['yi', 'jams', 'maya more']), ('评分', [9.0, 9.1, 9.8])])
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

岁月辰星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值