Python学习随笔_2_基础:列表、元组

一、列表

列表是Python 最常用的数据类型之一,通过列表可以对数据实现最方便的存储、修改等操作。

1、定义列表

1 names = ["Cz","Cao","Zhang","Hui","Yang"]
2 print(names)

2、元素访问:通过下标

1 >>> names = ["Cz","Cao","Zhang","Hui","Yang"]
2 >>> names[0]
3 ‘Cz‘
4 >>> names[1]
5 ‘Cao‘
6 >>> names[-1]
7 ‘Yang‘

3、切片访问

 1 >>> names = ["Cz","Cao","Zhang","Hui","Yang","Xiang","Xin"]
 2 >>> names[1:3] #切片取值为[a,b)区间
 3 [‘Cao‘, ‘Zhang‘]
 4 >>> names[:3]  #默认从头开始取值
 5 [‘Cz‘, ‘Cao‘, ‘Zhang‘]
 6 >>> names[-3:-1] #切片也能倒取
 7 [‘Yang‘, ‘Xiang‘]
 8 >>> names[-3:]   #若倒取想获得最后一个值,只能用默认值
 9 [‘Yang‘, ‘Xiang‘, ‘Xin‘]
10 >>> names[:4:2]  #步长为2,取值
11 [‘Cz‘, ‘Zhang‘]

4、追加元素

1 >>> names = ["Cz","Cao","Zhang","Hui","Yang","Xiang","Xin"]
2 >>> names.append(‘New_person‘)
3 >>> print(names)
4 [‘Cz‘, ‘Cao‘, ‘Zhang‘, ‘Hui‘, ‘Yang‘, ‘Xiang‘, ‘Xin‘, ‘New_person‘]

5、插入元素

1 >>> names = ["Cz","Cao","Zhang","Hui","Yang","Xiang","Xin"]
2 >>> names.insert(1,‘New_person‘)
3 >>> names
4 [‘Cz‘, ‘New_person‘, ‘Cao‘, ‘Zhang‘, ‘Hui‘, ‘Yang‘, ‘Xiang‘, ‘Xin‘]

6、修改元素

1 >>> names
2 [‘Cz‘, ‘New_person‘, ‘Cao‘, ‘Zhang‘, ‘Hui‘, ‘Yang‘, ‘Xiang‘, ‘Xin‘]
3 >>> names[1] = ‘Old_person‘
4 >>> names
5 [‘Cz‘, ‘Old_person‘, ‘Cao‘, ‘Zhang‘, ‘Hui‘, ‘Yang‘, ‘Xiang‘, ‘Xin‘]

7、删除元素

 1 >>> names
 2 [‘Cz‘, ‘Old_person‘, ‘Cao‘, ‘Zhang‘, ‘Hui‘, ‘Yang‘, ‘Xiang‘, ‘Xin‘]
 3 >>> del names[1]  #删除指定下标元素
 4 >>> names
 5 [‘Cz‘, ‘Cao‘, ‘Zhang‘, ‘Hui‘, ‘Yang‘, ‘Xiang‘, ‘Xin‘]
 6 >>> names.remove(‘Xiang‘)  #删除指定元素
 7 >>> names
 8 [‘Cz‘, ‘Cao‘, ‘Zhang‘, ‘Hui‘, ‘Yang‘, ‘Xin‘]
 9 >>> names.pop()  #删除最后一个元素
10 ‘Xin‘
11 >>> names
12 [‘Cz‘, ‘Cao‘, ‘Zhang‘, ‘Hui‘, ‘Yang‘]

8、获取下标

1 >>> names
2 [‘Cz‘, ‘Cao‘, ‘Zhang‘, ‘Hui‘, ‘Yang‘]
3 >>> names.index(‘Zhang‘)
4 2

返回元素第一次出现的下标。

9、统计元素出现次数

1 >>> names
2 [‘Cz‘, ‘Cao‘, ‘Zhang‘, ‘Hui‘, ‘Yang‘, ‘Cz‘]
3 >>> names.count("Cz")
4 2

10、拓展:追加列表

1 num = [1,2,3]
2 >>> names.extend(num)
3 >>> names
4 [‘Cz‘, ‘Cao‘, ‘Zhang‘, ‘Hui‘, ‘Yang‘, ‘Cz‘, 1, 2, 3]

11、列表排序、反转

 1 >>> names
 2 [‘Cz‘, ‘Cao‘, ‘Zhang‘, ‘Hui‘, ‘Yang‘, ‘Cz‘, 1, 2, 3]
 3 >>> names.sort()
 4 Traceback (most recent call last):
 5   File "<pyshell#42>", line 1, in <module>
 6     names.sort()
 7 TypeError: unorderable types: int() < str()
 8 >>> names[-1] = ‘3‘
 9 >>> names[-2] = ‘2‘
10 >>> names[-3] = ‘1‘
11 >>> names.sort()
12 >>> names
13 [‘1‘, ‘2‘, ‘3‘, ‘Cao‘, ‘Cz‘, ‘Cz‘, ‘Hui‘, ‘Yang‘, ‘Zhang‘]
14 >>> #Python 3.x 里不同数据类型不能放在一起排序了
15 >>> names.reverse() #列表反转
16 >>> names
17 [‘Zhang‘, ‘Yang‘, ‘Hui‘, ‘Cz‘, ‘Cz‘, ‘Cao‘, ‘3‘, ‘2‘, ‘1‘]

12、列表copy

 1 >>> import copy
 2 >>> copy1 = ["aa","bb",["ee","ff"],"cc","dd"]
 3 >>> copy2 = copy.copy(copy1) #浅copy
 4 >>> copy3 = copy.deepcopy(copy1) #深copy
 5 >>> copy1[1] = "bbb"
 6 >>> copy1[2][0] = "eee"
 7 >>> copy1
 8 [‘aa‘, ‘bbb‘, [‘eee‘, ‘ff‘], ‘cc‘, ‘dd‘]
 9 >>> copy2
10 [‘aa‘, ‘bb‘, [‘eee‘, ‘ff‘], ‘cc‘, ‘dd‘]
11 >>> copy3
12 [‘aa‘, ‘bb‘, [‘ee‘, ‘ff‘], ‘cc‘, ‘dd‘]

Why?

Becase:学习引用后解释,目前记住浅copy时:copy1修改嵌套列表时,copy2同时被修改。

二、一个好玩但不太实用的列表copy例子

一对夫妻,维护同一个银行账户!虽然实际开发中绝对不会这么做。。。

可能还有其他应用场景,但是我没想到。(就连这个也是别处看到的。。。)

 1 >>> import copy
 2 >>> person = [‘name‘,[‘saving‘,‘100‘]]
 3 >>> p1 = person[:]
 4 >>> p2 = person[:]
 5 >>> p1
 6 [‘name‘, [‘saving‘, ‘100‘]]
 7 >>> p2
 8 [‘name‘, [‘saving‘, ‘100‘]]
 9 >>> p1[0] = ‘cz‘
10 >>> p2[0] = ‘zhang‘
11 >>> p1
12 [‘cz‘, [‘saving‘, ‘100‘]]
13 >>> p2
14 [‘zhang‘, [‘saving‘, ‘100‘]]
15 >>> p1[1][1] = 50    #其中一方花了50
16 >>> p1
17 [‘cz‘, [‘saving‘, 50]]
18 >>> p2
19 [‘zhang‘, [‘saving‘, 50]]

三、元组

元组(tuple)跟列表类似,也是存一组数据,只不是它一旦创建,便不能再修改,所以又叫只读列表。

有且仅有的两个方法,如下:

1 >>> names = (‘cz‘,‘zhang‘,‘cao‘)
2 >>> names.count(‘cz‘)
3 1
4 >>> names.index(‘cz‘)
5 0

好,元组学完了。

四、练习

需求(该练习选自http://www.cnblogs.com/alex3714/articles/5717620.html):

  1. 启动程序后,让用户输入工资,然后打印商品列表
  2. 允许用户根据商品编号购买商品
  3. 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒
  4. 可随时退出,退出时,打印已购买商品和余额

 1 salary = int(input(‘Please input you salary: ‘))
 2
 3 print(‘‘‘This is a list of goods. Please choose!
 4 Direct settlement after selection, do not return!
 5 You can enter Q to leave!
 6 Thank you!‘‘‘)
 7
 8 commidity = [[1,‘IPhone‘,6188],[2,‘Honer‘,2188],[3,‘Book‘,58],[4,‘Computers‘,7888],[5,‘Water‘,2],[6,‘CPU_I7‘,3288]]
 9 shopping_car = []
10
11 stat = ‘0‘
12
13 while stat != ‘Q‘:
14     for comm in commidity:
15         print(comm[0],‘  ‘,comm[1],‘  ‘,comm[2])
16
17     stat = input(‘Please input you selection: ‘)
18
19     if stat == ‘Q‘:
20         break
21
22     if salary >= commidity[int(stat)-1][2]:
23         shopping_car.append(commidity[int(stat)-1])
24         salary = salary-commidity[int(stat)-1][2]
25         print(‘Choose success!‘)
26
27     if salary < commidity[int(stat)-1][2]:
28         print(‘Sorry, your credit is running low!‘)
29
30 print(‘‘‘Your balance is:{_salary}.
31 You have purchased the following commodities:‘‘‘.format(_salary=salary))
32 for shop in shopping_car:
33     print(shop[0],‘  ‘,shop[1],‘  ‘,shop[2])

购物车

原文地址:https://www.cnblogs.com/104cz/p/9547259.html

时间: 2024-10-09 21:21:30

Python学习随笔_2_基础:列表、元组的相关文章

python 学习笔记 二 序列, 列表, 元组, 字符串

序列 序类是一个集合概念, Pthon包括六种内建序列: 列表, 元组, 字符串, Unicode字符串, buffer对象和xrange对象. 其中, 我们最长用的要数前三个. 通用序列操作 1. 索引(indexing) 序列的所有元素都是有编号的(从0开始...), 这些元素可以通过编号访问, 如: >>> greeting = 'Hello' >>> greeting[0] 'H' 使用负数索引(从-1开始...)是从右边开始的: >>> gr

Python学习笔记-Day2-Python基础之元组操作

元组的常用操作包括但不限于以下操作: 元组的索引,计数等 这里将对列表的内置操作方法进行总结归纳,重点是以示例的方式进行展示. 使用type获取创建对象的类 type(tuple) 使用dir获取类的成员dir(list) 使用vars获取类的成员和各个成员的值 1.    tuple.count   返回元组元素个数 2.    tuple.index 返回元组索引

python学习笔记3:列表和元组

python学习笔记3:列表和元组 一.列表 list 总结:列表是可变变量,可以通过下标修改元素的值 1.定义列表 -- 中括号[ ] name=['Lily','Lucy','meimei'] 2.下标取值 --正负数均可 3.在列表中添加值 1)append() 方法,在列表末尾添加一个值 2)insert()方法,在列表指定位置添加一个值 3)extend()方法,把一个列表追加到一个列表的末尾            4.从列表中删除值 1)pop() 方法,默认删除最后一个元素,并且返

python学习—-day1.计算机基础

python学习-day1.计算机基础 一.计算机系统的硬件组成部分:电脑的三大件:内存.硬盘.cpu 二.编程语言的作用及操作系统和硬件的关系:答:1.编程语言的作用是与计算机沟通,并且可以用编程语言在操作系统上写程序,从而达到开发应用软件的目的2.操作系统是用来管理计算机硬件资源的 三.应用程序->操作系统->硬件:在硬件之上装操作系统,在操作系统上装应用程序1.应用程序是指程序员开发的可运行的软件2.操作系统的目的是用来管理计算机硬件的3.硬件:cpu.硬盘.内存.键盘.鼠标统称为电脑硬

day5_python学习笔记_chapter6_字符串列表元组

1. 序列:seq[n], seq[x:y], seq * n序列重复n次,切片, 序列翻转 s="abcde", s[::-1]="edcba" 内建函数:1. 类型转换: list(iter), str(obj), unicode(obj), tuple(iter) , 2. len(seq), max(), min() , reversed(), sorted(), sum(), 2. 字符串: in ,not in ,,, import string , s

01-Python学习笔记-基础语法

Python标识符 -d           在解析时显示调试信息 -O           生成优化代码 ( .pyo 文件 ) -S           启动时不引入查找Python路径的位置 -v            输出Python版本号 -X           从 1.6版本之后基于内建的异常(仅仅用于字符串)已过时. -c cmd     执行 Python 脚本,并将运行结果作为 cmd 字符串. file           在给定的python文件执行python脚本. P

Python学习笔记&lt;二&gt;:列表、元组、字典

1 列表和元组 可以将列表和元组当成普通的"数组",它能保存任意数量任意类型的Python 对象.和数组一样,通过从0 开始的数字索引访问元素,但是列表和元组可以存储不同类型的对象. 列表和元组有几处重要的区别.列表元素用中括号( [ ])包裹,元素的个数及元素的值可以改变.元组元素用小括号(( ))包裹,不可以更改(尽管他们的内容可以).元组可以看成是只读的列表.通过切片运算( [ ] 和 [ : ] )可以得到子集,这一点与字符串的使用方法一样. 举例如下: >>>

python 学习笔记day03-python基础、python对象、数字、函数

python基础 语句和语法 注释及续行 首要说明的是:尽管python可读性最好的语言之一,这并不意味者程序员在代码中就可以不写注释 和很多UNIX脚本类似,python注释语句从#字符开始 注释可以在一行的任何地方开始,解释器会忽略掉该行#之后的所有内容 一行过长的语句可以使用反斜杠\分解成几行 缩进及代码组 缩进相同的一组语句构成一个代码块,称之为代码组 首行以关键字开始,以冒号:结束,该行之后的一行或多行代码构成代码组 如果代码组只有一行,可以将其直接写在冒号后面,但是这样的写法可读性差

Python学习笔记_Python基础

Python 基础 语句和语法 注释 继续 代码组 代码的缩进 在一行书写多个语句 模块 变量赋值 赋值操作符 增量赋值 多重赋值 多元赋值 python编写的基本风格 模块的结构和布局 内存管理 变量定义 引用计数 增加引用计数 减少引用计数 del语句 Python 基础 语句和语法 注释 python中用#号进行注释 继续 如果一个语句需要跨行,那么需要用\来连接两个跨行的语句 if name == 'qeesung' and age == 23 在两种情况下是不需要使用反斜线来进行跨行连