Python列表,元组,字典,集合 练习

这篇博客通过一系列练习题目详细介绍了Python中的基本数据结构,包括元组元素求和、列表倒数、切片操作、列表和字符串的转换、字典的操作、类型转换以及循环计算等。同时,提供了多种解决问题的方法,适合Python初学者巩固基础知识。

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

目录

1.元组元素求和: b=(1,2,3,4,5,6,7,8,9)

2.输出元组内7的倍数及个位是7的数

3.列表倒数

方法一:

方法二:

4.写代码,有如下列表,利用切片实现每一个功能

(1)通过切片获取新的列表 lst2, lst2=[1,2,4,5]

(2)通过切片获取新的列表 lst3,lst3=[3,’a’,’b’]

(3)通过切片获取新的列表 lst4,lst4=[‘c’]

(4)通过切片获取新的列表 lst5,lst5=[‘b’,’a’,3]

5.列表题

(1)将 aa 变成大写AA。

(2)将列表中的3变成字符串'3'

6.字典

(1)k2对应的值中添加33

(2)k2对应的值的第一个位置插入一个元素‘s’

(3)将(1,2,3,4,5)对应的值添加一个键值对 ‘k4’:’v4’

(4)将(1,2,3,4)对应的值添加一个键值对(1,2,3):‘ok’

(5)将’k3’对应的值的‘wer’改为’qq’。

7.类型转换题目

(1)int和str 如何转换,转换的结果是什么。

(2)int 与bool如何转换,转换的结果是什么。

(3)str 与 list 如何转换,转换的结果是什么。

8.实现下列结果

(1)有列表li=['aa','bb','cc'],将该列表构造成一个字符串 aabbcc

(2)有列表li=['aa','bb','cc'],将该列表构造成一个字符串 aa*bb*cc

(3)有字符串 s='albblcc' 将构造成一个列表 lst=[‘a’,’lbblcc’]

(4)有字符串 s='aab bcc' 构造成列表 lst=[‘aab’,’bcc’]

(5)有字符串s='abcd' 将字符串变成a_b_c_d。 

9.使用for循环和while循环打印1-2+3-4+5... +99 的结果

10.使用range()函数打印 100,99,98,...0

11.计算用户输入内容中索引为奇数并且对应的元素的数字的个数(没有则个数为零)

要满足两个条件:

结果:

12.有如下值li = [11, 22, 33, 44, 55, 77, 88, 99, 90],将所有大于66的值保存至字典的第一个key中,将小于66的值保存至第二个key的值中。

 

13.查找列表中lst中的元素,移除每一个元素的空格,并且找出以’A’或者‘a’开头,并以‘c’结尾的所有元素,并添加到一个新列表中,最后循环打印这个新列表。

li = ['bajie ', 'axlzC', ' AbC ', '  gsssq  ', '  bobo  ', ' dongdong ', ' aqc']

14.整数加法计算器

方法一:

方法二:


1.元组元素求和: b=(1,2,3,4,5,6,7,8,9)

# 1.元组元素求和: b=(1,2,3,4,5,6,7,8,9)
b = (1, 2, 3, 4, 5, 6, 7, 8, 9)
total = 0
for i in b:
    total += i
print(total)

2.输出元组内7的倍数及个位是7的数

b=(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17)

有两个条件:(1)元素是7的倍数

                      (2)元素的个位是7

两者是或(or)的关系

# 2.输出元素内7的倍数及个位为7的数
b = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
for i in b:
    if i % 7 == 0 or i % 10 == 7:
        print(i)
# 7
# 14
# 17

3.列表倒数

a=[123,4567,12,3456]   输出a=[321,7654,21,6543]

方法一:

           使用列表的revese() 函数,逆序输出元素

方法二:

           使用字符串的切片,a[::-1]:表示逆序输出元素

# 3.列表倒数
# a=[123,4567,12,3456]  输出a=[321,7654,21,6543]
# 方法一:使用列表的reverse()函数,逆向输出元素
a = [123, 4567, 12, 3456]
b = []
for i in a:
    i = list(str(i))
    i.reverse()
    i = int(''.join(i))
    b.append(i)
print(b)
# 方法二:使用字符串的切片  a[::-1]:表示逆序输出
a = [123, 4567, 12, 3456]
b = []
for i in a:
    i = str(i)
    i = int(i[::-1])
    b.append(i)
print(b)

4.写代码,有如下列表,利用切片实现每一个功能

     lst=[1,3,2,’a’,4,’b’,5,’c’]

(1)通过切片获取新的列表 lst2, lst2=[1,2,4,5]

(2)通过切片获取新的列表 lst3,lst3=[3,’a’,’b’]

(3)通过切片获取新的列表 lst4,lst4=[‘c’]

(4)通过切片获取新的列表 lst5,lst5=[‘b’,’a’,3]

# 4、写代码,有如下列表,利用切片实现每一个功能。
# lst=[1,3,2,’a’,4,’b’,5,’c’]
# (1).通过切片获取新的列表 lst2, lst2=[1,2,4,5]
lst = [1, 3, 2, 'a', 4, 'b', 5, 'c']
lst2 = lst[0::2]
print(lst2)
# (2).通过切片获取新的列表 lst3,lst3=[3,’a’,’b’]
lst3 = lst[1:6:2]
print(lst3)
# (3).通过切片获取新的列表 lst4,lst4=[‘c’]
lst4 = lst[-1]
print(lst4)
# (4).通过切片获取新的列表 lst5,lst5=[‘b’,’a’,3]
lst5 = lst[-3::-2]
print(lst5)

5.列表题

lis = [['k', ['qqq', 20, {'k1': ['aa', 3, '1']}, 33], 'xx']]

(1)将 aa 变成大写AA。

(2)将列表中的3变成字符串'3'

# 2、列表题
lis = [['k', ['qqq', 20, {'k1': ['aa', 3, '1']}, 33], 'xx']]
# (1).将 aa 变成大写AA。
lis[0][1][2]['k1'][0] = 'AA'
print(lis)  # [['k', ['qqq', 20, {'k1': ['AA', 3, '1']}, 33], 'xx']]
# (2).将列表中的3变成字符串‘3’
lis[0][1][2]['k1'][1] = '3'
print(lis)  # [['k', ['qqq', 20, {'k1': ['AA', '3', '1']}, 33], 'xx']]

6.字典

dic = {'k1': 'v1', 'k2': ['sb', 'aa'], (1, 2, 3, 4, 5): {'k3': ['2', 100, 'wer']}}

(1)k2对应的值中添加33

(2)k2对应的值的第一个位置插入一个元素‘s’

(3)将(1,2,3,4,5)对应的值添加一个键值对 ‘k4’:’v4’

(4)将(1,2,3,4)对应的值添加一个键值对(1,2,3):‘ok’

(5)将’k3’对应的值的‘wer’改为’qq’。

# 6.字典dic = {'k1': 'v1', 'k2': ['sb', 'aa'], (1, 2, 3, 4, 5): {'k3': ['2', 100, 'wer']}}
dic = {'k1': 'v1', 'k2': ['sb', 'aa'], (1, 2, 3, 4, 5): {'k3': ['2', 100, 'wer']}}
# (1). k2对应的值中添加33
dic['k2'].append(33)
print(dic)  # {'k1': 'v1', 'k2': ['sb', 'aa', 33], (1, 2, 3, 4, 5): {'k3': ['2', 100, 'wer']}}
# (2).k2对应的值的第一个位置插入一个元素‘s’
dic['k2'].insert(0, 's')
print(dic)  # {'k1': 'v1', 'k2': ['s', 'sb', 'aa', 33], (1, 2, 3, 4, 5): {'k3': ['2', 100, 'wer']}}
# (3).将(1,2,3,4,5)对应的值添加一个键值对 ‘k4’:’v4’
dic[(1, 2, 3, 4, 5)]['k4'] = 'v4'
print(dic)  # {'k1': 'v1', 'k2': ['s', 'sb', 'aa', 33], (1, 2, 3, 4, 5): {'k3': ['2', 100, 'wer'], 'k4': 'v4'}}
# (4).将(1,2,3,4,5)对应的值添加一个键值对(1,2,3):‘ok’
dic[(1, 2, 3, 4, 5)][(1, 2, 3)] = 'ok'
print(dic)
# {'k1': 'v1', 'k2': ['s', 'sb', 'aa', 33], (1, 2, 3, 4, 5): {'k3': ['2', 100, 'wer'], 'k4': 'v4', (1, 2, 3): 'ok'}}
# (5).将’k3’对应的值的‘wer’改为’qq’。
dic[(1, 2, 3, 4, 5)]['k3'][-1] = 'qq'
print(dic)
# {'k1': 'v1', 'k2': ['s', 'sb', 'aa', 33], (1, 2, 3, 4, 5): {'k3': ['2', 100, 'qq'], 'k4': 'v4', (1, 2, 3): 'ok'}}

7.类型转换题目

(1)int和str 如何转换,转换的结果是什么。

(2)int 与bool如何转换,转换的结果是什么。

(3)str 与 list 如何转换,转换的结果是什么。

空字符串,空列表,空元组,空字典,空集合--------->都是False:0

''    ""            []             ()           {}            set()

其余都是True

# 7、类型转换题目
# (1).int和str 如何转换,转换的结果是什么。
# int-------------------->str
num = 10
str1 = str(num)
print(str1)  # 10
print(type(str1))  # str    字符串
# str--------------------->int
str1 = '10'
num1 = int(str1)
print(num1)  # 10
print(type(num1))  # int  整形
# (2).int 与bool如何转换,转换的结果是什么。
# int---------------------->bool
num = 10
bool1 = bool(num)
print(bool1)  # True
print(type(bool1))  # bool    布尔型
# bool--------------------->int
bool1 = False
num1 = int(bool1)
print(num1)  # 0
print(type(num1))  # int    整形
# (3).str 与 list 如何转换,转换的结果是什么。
str1 = 'hello'
lst = list(str1)
print(lst)  # ['h', 'e', 'l', 'l', 'o']
print(type(lst))  # list   列表
# list--------------------->str
lst = [1, 2, 3]
str1 = str(lst)
print(str1)  # [1, 2, 3]
print(type(str1))  # str    字符串

8.实现下列结果

(1)有列表li=['aa','bb','cc'],将该列表构造成一个字符串 aabbcc

(2)有列表li=['aa','bb','cc'],将该列表构造成一个字符串 aa*bb*cc

(3)有字符串 s='albblcc' 将构造成一个列表 lst=[‘a’,’lbblcc’]

(4)有字符串 s='aab bcc' 构造成列表 lst=[‘aab’,’bcc’]

(5)有字符串s='abcd' 将字符串变成a_b_c_d。 

# 8.实现下列结果
# (1)  .有列表li=['aa','bb','cc'],将该列表构造成一个字符串 aabbcc
li = ['aa', 'bb', 'cc']
li = ''.join(li)  # 用join()方法,将列表中的每一元素用''拼接起来
print(li)
# (2).有列表li=['aa','bb','cc'],将该列表构造成一个字符串 aa*bb*cc
li = ['aa', 'bb', 'cc']
li = '*'.join(li)  # 用'*'连接列表中的每一个元素
print(li)
# (3).有字符串 s='albblcc' 将构造成一个列表 lst=[‘a’,’lbblcc’]
s = 'albblcc'
lst = s.split('l', maxsplit=1)  # 使用一个l进行切割
print(lst)
# (4).有字符串 s='aab bcc' 构造成列表 lst=[‘aab’,’bcc’]
s = 'aab bcc'
lst = s.split(' ')
print(lst)
# (5) .有字符串s='abcd' 将字符串变成a_b_c_d。
s='abcd'
s='_'.join(s)
print(s)

9.使用for循环和while循环打印1-2+3-4+5... +99 的结果

# 9.使用for循环和while循环打印1-2+3-4+5... +99 的结果
# for 循环
total = 0
for i in range(1, 100):
    if i % 2 == 0:
        total -= i
    else:
        total += i
print('1-2+3-4+5....+99=', total)  # 1-2+3-4+5....+99= 50
# while循环
i = 1
total = 0
while i <= 99:
    if i % 2 == 0:
        total -= i
    else:
        total += i
    i += 1
print('1-2+3-4+5.....+99=', total)
# 不用if 判断语句,用数学思想
total = 0
for i in range(1, 100):
    total = total + i * ((-1) ** (i + 1))
print('1-2+3-4+5.....+99=', total)

10.使用range()函数打印 100,99,98,...0

# 10.使用range()函数打印 100,99,98,...0
for i in range(100, -1, -1):
    print(i)

11.计算用户输入内容中索引为奇数并且对应的元素的数字的个数(没有则个数为零)

要满足两个条件:

(1)输入的内容的索引为奇数

  (2)该索引对应的内容是数字

结果:

统计满足上述两个条件的输入内容出现的次数

# 11.计算用户输入内容中索引为奇数并且对应的元素的数字的个数(没有则个数为零)
num = 0
str1 = input('请输入内容:')
for index, value in enumerate(str1, start=1):
    if index % 2 == 0 and value.isdigit():
        num += 1
print(value, num)

12.有如下值li = [11, 22, 33, 44, 55, 77, 88, 99, 90],将所有大于66的值保存至字典的第一个key中,将小于66的值保存至第二个key的值中。

1.根据题意,首先要有一个字典:dic={}

2.大于或者小于66的数都有好几个,选择用列表来存放

     大于66的放在:max_list

    小于66的放在:min_list

3.把max_list,min_list 放在字典 dic{}中

# 12.有如下值li = [11, 22, 33, 44, 55, 77, 88, 99, 90],
# 将所有大于66的值保存至字典的第一个key中,将小于66的值保存至第二个key的值中。
li = [11, 22, 33, 44, 55, 77, 88, 99, 90]
max_list = []  # 用来存放大于66的所有的值
min_list = []  # 用来存放小于66的所有的值
dic = {}  # 用来存放max_list   min_list
for i in li:
    if i > 66:
        max_list.append(i)
    else:
        min_list.append(i)
dic['max_list'] = max_list
dic['min_list'] = min_list
print(dic)

 


13.查找列表中lst中的元素,移除每一个元素的空格,并且找出以’A’或者‘a’开头,并以‘c’结尾的所有元素,并添加到一个新列表中,最后循环打印这个新列表。

li = ['bajie ', 'axlzC', ' AbC ', '  gsssq  ', '  bobo  ', ' dongdong ', ' aqc']

(1)先去掉列表每一项的空格

(2)判断是否以'a'或者是'A'开头,且以'c'结尾

求开头和结尾的方法:

(1)利用索引:开头   i[0]       结尾    i[-1]

(2)利用方法:开头    i.startswith()         结尾    i.endwith()

# 13.查找列表中lst中的元素,移除每一个元素的空格,并且找出以’A’或者‘a’开头,并
# 以‘c’结尾的所有元素,并添加到一个新列表中,最后循环打印这个新列表。
# 方法一:利用索引
li = ['bajie ', 'axlzC', ' AbC ', '  gsssq  ', '  bobo  ', ' dongdong ', ' aqc']
b = []
for i in li:
    i = i.replace(' ', '')
    if i[0].upper() == 'A' and i[-1] == 'c':
        b.append(i)
print(b)  # ['aqc']
# 方法二:利用方法
li = ['bajie ', 'axlzC', ' AbC ', '  gsssq  ', '  bobo  ', ' dongdong ', ' aqc']
b = []
for i in li:
    i = i.replace(' ', '')
    if (i.startswith('a') or i.startswith('A')) and i.endswith('c'):
        b.append(i)
print(b)  # ['aqc']

14.整数加法计算器

例如用户输入:5+8+21...(最少输入2个数相加),然后进行分割再进行计算,将最后的计算结果添加到字典中(替换None)。

dic={‘最终结果’:None}

方法一:

先用split()函数把字符串中的数字分割出来,然后求和

方法二:

使用eval()函数:用来计算在字符串中的有效python表达式,并返回一个值

# 14.整数加法计算器
# 例如用户输入:5+8+21...(最少输入2个数相加),然后进行分割再进行计算,将最后的计算结果添加到字典中(替换None)。
# dic={‘最终结果’:None}
# 方法一:
total = 0
ret = input('请用户输入加法表达式:')
str1 = ret.split('+')
for i in str1:
    i = int(i)
    total += i
print(ret, '=', total)
# 方法二:使用eval()函数:
ret = input('请输入加法表达式:')
ret = eval(ret)
print(ret)


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值