目录
4.2.1 列表用于循环在for循环中,使用range(len(name)),迭代列表中的每一个下标。举例说明
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']
>>>
看书过程中,对内容进行创建实例,加深理解