python的列表基础知识与练习题

本文介绍了Python列表的基础知识,包括索引、重复、连接、成员操作符、列表嵌套和切片等特性,并提供了练习题。此外,还展示了如何在列表中增加、删除和修改元素,以及如何对列表进行排序。文章最后通过一个实际的算术练习程序来加深对列表操作的理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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])                                                        
4

In [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])                                                       
1

In [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]: 2

In [8]: s                                                           
Out[8]: [1]

In [9]: s.pop()                                                     
Out[9]: 1

In [10]: s                                                          
Out[10]: []

方法二:删除指定元素

In [13]: s = [1,2,3]                                                

In [14]: a = s.remove(2)                                            

In [15]: print(a)                                                   
None

In [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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值