第4章 列表

目录

4.1 列表数据类型

4.1.1 用下标取得列表中的单个值

4.1.2 负数下标

4.1.3 利用切片取得子列表

4.1.4 用len()取得列表的长度

4.1.5 用下标改变列表中的值

4.1.6 列表连接和列表复制

4.1.7 用del语句从列表中删除值

4.2 使用列表

4.2.1 列表用于循环在for循环中,使用range(len(name)),迭代列表中的每一个下标。举例说明

4.2.2 in和not in操作符

4.2.3多重赋值技巧

4.3 增强的赋值操作

4.1 列表数据类型

术语异同表现形式
列表值指列表本身,作为一个值,可以保存在变量中,或传递给函数,像其他所有值一样,而非列表值之内的那些值。类似字符串值用引号来标记字符串的起止,列表用[]标记起止;列表值本身包含多个值,[]是空列表,不包含任何值,类似于空字符串;
表项列表中的值,称为“表项”表项用逗号分隔,[1,2,3]或["张三","李四","王五"];

4.1.1 用下标取得列表中的单个值

第一个值的下标是0, 

 name[0]求值为字符串'张三'

列表包含列表

>>> str=[["张三","李四","王五"],['老大','老二','老三']]
>>> str[0][0]+'是家中的'+str[1][0]
'张三是家中的老大'
>>> 

4.1.2 负数下标

整数值-1,指的是列表中最后一个下标

4.1.3 利用切片取得子列表

术语区别表现
下标从列表中取得“单个值”name[0] 是'张三'
切片从列表中取得“多个值”name[0:2]是['张三', '李四'],生成新的列表

4.1.4 用len()取得列表的长度

len()函数返回传递给它的列表中值的个数,类似于计算字符串中字符的个数一样。

4.1.5 用下标改变列表中的值

name=["张三","李四","王五"]
print(name[:]) #省略切片中的上下标,表示输出整个列表
name[-1]="宋江"
print(name[1:3])#切片中,向上增长,直至第三个下标的值,但不包括它,print(name[3])报错下标越界
#运行结果
>>> %Run lianxi.py
['张三', '李四', '王五']
['李四', '宋江']

4.1.6 列表连接和列表复制

+操作符,类似与两个字符串合并形成一个新字符一样,连接两个列表,形成一个新列表;

*操作符,类似与字符串复制一样,实现列表的复制

name=["张三","李四","王五"]
str02=['老大','老二','老三']
str1="厉害!"
print(name[:]+str02[:])
print(name[:],str02[:])
print(str1+str02[0])
print(str1*3)
print(name[:]*2)

结果如下:
>>> %Run lianxi.py
['张三', '李四', '王五', '老大', '老二', '老三']
['张三', '李四', '王五'] ['老大', '老二', '老三']
厉害!老大
厉害!厉害!厉害!
['张三', '李四', '王五', '张三', '李四', '王五']

4.1.7 用del语句从列表中删除值

del语句删除列表中的下标处值,被删除值后面的所有值,向前移动一个下标

name=["张三","李四","王五"]
print(name[:])
del name[1]
print(name[:])

运行结果如下:
>>> %Run lianxi.py
['张三', '李四', '王五']
['张三', '王五']

4.2 使用列表

使用列表来保存变量,好处是现在数据放在一个结构中,以便程序进行灵活的处理。下面例子使用clas_names[]来接收键盘输入的同学名称

clas_names=[]
while True:
    print("输入同学的名字:"+str(len(clas_names)+1)+'想不起来了,回车结束!')
    name=input()
    if name=='':
        break
    clas_names=clas_names+[name]
print('想起的同学名单如下:')
for name in clas_names:
    print(''+name)

运行结果:

>>> %Run lianxi_2.py
输入同学的名字:1想不起来了,回车结束!
张三
输入同学的名字:2想不起来了,回车结束!
李四
输入同学的名字:3想不起来了,回车结束!
王五
输入同学的名字:4想不起来了,回车结束!
宋江
输入同学的名字:5想不起来了,回车结束!
林黛玉
输入同学的名字:6想不起来了,回车结束!

想起的同学名单如下:
张三
李四
王五
宋江
林黛玉

4.2.1 列表用于循环
在for循环中,使用range(len(name)),迭代列表中的每一个下标。举例说明

name=["张三","李四","王五"]
for i in range(len(name)):
    print('index '+str(i)+' in name is :'+name[i])

运行结果:

>> %Run lianxi_2.py
index 0 in name is :张三
index 1 in name is :李四
index 2 in name is :王五

4.2.2 in和not in操作符

利用上述两个操作符,判断一个值是否在列表中,表达式求值为布尔值。

>>> name=["张三","李四","王五"]
>>> 张三 in name
Traceback (most recent call last):
  File "<pyshell>", line 1, in <module>
NameError: name '张三' is not defined
>>> "张三" in name
True
>>> "李四" not in name
False

用个例子说明

names=["张三","李四","王五"]
print('请输入名字:')
name=input()
if name not in names:
    print(name+'不是坏人!')
else:
    print(name+'是哈怂!')
    
运行结果:
>>> %Run lianxi_2.py
请输入名字:
李军
李军不是坏人!

4.2.3多重赋值技巧

利用列表中的值为多个变量赋值,但是必须要求变量的数目和列表的长度严格相等,否则报错
代码如下:

names=["张三","李四","王五"]
str1,str2,str3=names
print('请输出名字:'+str1)
print('请输出名字:'+str2)
print('请输出名字:'+str3)

>>> %Run lianxi_2.py
请输出名字:张三
请输出名字:李四
请输出名字:王五

4.3 增强的赋值操作

在对变量赋值时,会用到变量本身,在字符串和列表中可以使用,针对+,-,*,/,%操作符

names=["张三","李四","王五"]
print(names)
names=names+['1','2']
print(names)
names+=['1','2'] #与上面的赋值作用相同
print(names)

>>> %Run lianxi_2.py
['张三', '李四', '王五']
['张三', '李四', '王五', '1', '2']
['张三', '李四', '王五', '1', '2', '1', '2']
>>> 

看书过程中,对内容进行创建实例,加深理解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值