1.列表的特性
1)索引
In [1]: s = [1,2,3,4]
In [2]: s[0]
Out[2]: 1嵌套列表的索引
In [9]: s = [1,2,3,[4,5]]
In [20]: print(s[-1][0])
4In [21]: print(s[-1][-1])
5
2)重复
In [3]: print(s*2)
[1, 2, 3, 4, 1, 2, 3, 4]
3)连接
In [4]: s1 = [10,11,12]
In [5]: s3 = s + s1
In [6]: print(s3)
[1, 2, 3, 4, 10, 11, 12]
4)成员操作符
In [7]: 3 in s
Out[7]: True
5)列表嵌套
In [9]: s = [1,2,3,[4,5]]
In [10]: print(s)
[1, 2, 3, [4, 5]]
6)切片
In [13]: s = [1,2,3,[4,5]]
In [14]: print(s[:2])
[1, 2]In [15]: print(s[2:])
[3, [4, 5]]In [16]: print(s[::-1])
[[4, 5], 3, 2, 1]嵌套列表的切片
In [18]: print(s[:-1][0])
1In [19]: print(s[2:][0])
3
7)
此外,列表里:可以存储不同的数据类型
s = ['list',2,3,4] for i in s: print(i)
list
2
3
4
练习1:
""" 假设有下面的列表 name=['fensi','fentiao','fendai'] 输出结果为:'I have fensi,fentiao and fendai' """ name = ['fensi', 'fentiao', 'fendai'] print('I like ', name[0], ',', name[1], 'and', name[2])
练习二:
""" 判断月份所属季节 """ reason = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 22, 12]] a = int(input('输入月份')) if a in reason[0]: print('%s是春季' % a) elif a in reason[1]: print('%s是夏季' % a) elif a in reason[2]: print('%s是秋季' % a) elif a in reason[3]: print('%s是冬季' % a) else: print('error')
练习三:
练习五:
设计一个程序,用来实现帮助小学生进行百以内的算术练习,它具有以
下功能:
提供10道加、减、乘或除四种基本算术运算的题目;
练习者根据显示的题目输入自己的答案,程序自动判断输入的答案是否
正确并显示出相应的信息。
import random
count = 0
right = 0
while True:
a = random.randint(0, 9)
# 作为除数
b = random.randint(1, 9)
op = ['+', '-', '*', '//']
d = random.choice(op)
print('%d %s %d = ' % (a, d, b))
question = input('请输入您的答案: (q退出)')
result1 = a + b
result2 = a - b
result3 = a * b
result4 = a // b
if question == str(result1):
print('回答正确')
right += 1
count += 1
elif question == str(result2):
print('回答正确')
right += 1
count += 1
elif question == str(result3):
print('回答正确')
right += 1
count += 1
elif question == str(result4):
print('回答正确')
right += 1
count += 1
elif question == 'q':
break
else:
print('回答错误')
count += 1
percent = right / count
print('测试结束,共回答%d道题,正确个数为%d,正确率为%.2f%%'
% (count, right, percent * 100))
2.列表的增加
append方法增加一个元素,extend方法可增加多个元素。 append和extend方法只能增加到列表最后,insert方法可以插入到任意地方。 方法一: li = ['华为','小米','中兴'] li.append('魅族') print(li) 运行结果:['华为', '小米', '中兴', '魅族']
方法二: li = ['华为','小米','中兴'] li.extend(['0','魅族']) print(li) 运行结果:['华为', '小米', '中兴', '0', '魅族']
方法三: li = ['华为','小米','中兴'] li.insert(0,'魅族') 0代表插入的位置 print(li) 运行结果:['魅族', '华为', '小米', '中兴']
3.列表的删除
方法一:
In [6]: s = [1,2]
In [7]: s.pop()
Out[7]: 2In [8]: s
Out[8]: [1]In [9]: s.pop()
Out[9]: 1In [10]: s
Out[10]: []方法二:删除指定元素
In [13]: s = [1,2,3]
In [14]: a = s.remove(2)
In [15]: print(a)
NoneIn [16]: print(s)
[1, 3]方法三:从内存中删除
In [17]: s = [1,2,3]
In [18]: del s
In [19]: print(s)
name 's' is not defined
4.列表的修改
方法一:通过索引,重新赋值 s = [1,2,3,4] s[0]=7 print(s) 运行结果:[7, 2, 3, 4]
方法二:通过切片,重新赋值 s = [1,2,3,4] s[:2]=[9,9] print(s) 运行结果:[9, 9, 3, 4]
5.列表的查看
查看元素出现次数 s = [1,2,2,4] print(s.count(2)) 运行结果:2
查看指定元素的索引值(可以指定索引范围查看) s = ['http','fest','http','hello'] print(s.index('hello')) 输入列表中hello的索引 print(s.index('http',1,3)) 指定在下标为1到3中的元素中找出http,并输出其索引值
6.列表的排序
打乱顺序: import random li = list(range(10)) print(li) random.shuffle(li) print(li) 运行结果: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [0, 5, 7, 3, 2, 4, 6, 1, 8, 9]
In [31]: names =['alice','bob','harry','Boo']
In [32]: names.sort() 这种排序会将大写的排在最前面,其余的按a-z排序
In [33]: names
Out[33]: ['Boo', 'alice', 'bob', 'harry']In [34]: names =['alice','bob','harry','Boo']
In [35]: names.sort(key=str.lower) 无论大小写都按a-z排序
In [36]: names
Out[36]: ['alice', 'bob', 'Boo', 'harry']In [37]: names =['alice','bob','harry','Boo']
In [38]: names.sort(key=str.upper) 无论大小写都按a-z排序
In [39]: names
Out[39]: ['alice', 'bob', 'Boo', 'harry']
练习题
""" 通过代码实现系统的以下功能: 1). 注册新用户 2). 用户登录 3). 注销用户 4). 显示用户信息 5). 退出系统(exit(0)) """ users = ['root', 'westos'] passwds = ['123', '123'] while True: print(''' 1). 注册新用户 2). 用户登录 3). 注销用户 4). 显示用户信息 5). 退出系统(exit(0)) ''') choice = int(input('请输入您的操作')) if choice == 1: user1 = input('请输入注册用户名') pass1 = input('请输入注册用户密码') if user1 in users: print('此用户已存在') else: users.append(user1) passwds.append(pass1) print('用户注册成功') if choice == 2: user2 = input('输入用户名') pass2 = input('输入密码') if user2 in users and pass2 == passwds[users.index(user2)]: print('用户登陆成功') if choice == 3: user3 = input('请输入注销的用户名') if user3 in users: a = users.index(user3) users.remove(user3) passwds.pop(a) print('已删除此用户') else: print('没有该用户') if choice == 4: print('用户\t\t密码') for i in users: print(i, passwds[users.index(i)]) if choice == 5: break