第二章节练习

第二章节练习

列表练习题

1.创建一个空列表,命名为names,往里面添加old_driver,rain,jack,shanshan,peiqi,black_girl元素

>>> names
['old_drive', 'rain', 'jack', 'shanshan', 'peiqi', 'black_girl']
>>>

2.往names列表里black_girl前面插入一个alex

>>> names.insert(5,"alex")
>>> names
['old_drive', 'rain', 'jack', 'shanshan', 'peiqi', 'alex', 'black_girl']
>>>

3.把shanshan的名字改成中文,珊珊

 如何修改?忘记了

4.往names列表里rain的后面插入一个子列表,[oldboy,oldgirl]

>>> names.insert(2,["oldboy","oldgirl"])
>>> names
['old_drive', 'rain', ['oldboy', 'oldgirl'], 'jack', 'shanshan', 'peiqi', 'alex', 'black_girl']
>>>

5.返回peiqi的索引值

>>> names
['old_drive', 'rain', ['oldboy', 'oldgirl'], 'jack', 'shanshan', 'peiqi', 'alex'
, 'black_girl']
>>> names.index("peiqi")
5
>>>

6.创建新列表[1,2,3,4,2,5,6,2],合并入names列表

extend  列表的合并

['old_drive', 'rain', ['oldboy', 'oldgirl'], 'jack', 'shanshan', 'peiqi', 'alex', 'black_girl']
>>> age_list=[1,2,3,4,2,4,6,3,2,7,2]
>>> names.extend(age_list)
>>> names
['old_drive', 'rain', ['oldboy', 'oldgirl'], 'jack', 'shanshan', 'peiqi', 'alex', 'black_girl', 1, 2
, 3, 4, 2, 4, 6, 3, 2, 7, 2]
>>>

7.取出names列表中索引4-7的元素

>>> names
['old_drive', 'rain', ['oldboy', 'oldgirl'], 'jack', 'shanshan', 'peiqi', 'alex', 'black_girl']
>>> names[4:]
['shanshan', 'peiqi', 'alex', 'black_girl']
>>>

8.取出names列表中索引2-10的元素,步长为2

>>> names
['old_drive', 'rain', ['oldboy', 'oldgirl'], 'jack', 'shanshan', 'peiqi', 'alex', 'black_girl', 2, 3, 4, 5, 6]
>>> names[2:11:2]
[['oldboy', 'oldgirl'], 'shanshan', 'alex', 2, 4]
>>>

9.取出names列表中最后3个元素

>>> names[-3:]
[4, 5, 6]
>>>

10.循环names列表,打印每个元素的索引值,和元素

names=['old_drive', 'rain', ['oldboy', 'oldgirl'], 'jack', 'shanshan', 'peiqi', 'alex', 'black_girl', 2, 3, 4, 5, 6]
count=0
for i in names:
    print(count , i)
    count +=1

11.循环names列表,打印每个元素的索引值,和元素,当索引值为偶数是,把对应的元素改成-1

names=['old_drive', 'rain', ['oldboy', 'oldgirl'], 'jack', 'shanshan', 'peiqi', 'alex', 'black_girl', 2, 3, 4, 5, 6]
count=0
for i in names:
    print(count , i)
    count +=1
    if count %2==0:
        names[count]="-1"

12.names里有3个2,请返回第2个2的索引值,不要人肉数,要动态找(提示,找到第一个2的位置,在此基础上再找到第二个)

 返回索引值  index

 字典练习题

写代码,有如下字典,按照要求实现每一个功能。dic = {'k1':'v1','k2':'v2','k3':'v3'}

1.请循环遍历出所有的key

dic = {'k1':'v1','k2':'v2','k3':'v3'}
for k in dic:
print(k)

2.请循环遍历出所有的value

dic = {'k1':'v1','k2':'v2','k3':'v3'}
for k in dic:
    print(dic[k])

3.请循环遍历初所有的KEY和VALUE

dic = {'k1':'v1','k2':'v2','k3':'v3'}
for k in dic:
    print(k,dic[k])

4.请在字典中添加一个键值对,'k4':'v4',输出添加后的字典

dic = {'k1':'v1','k2':'v2','k3':'v3'}
dic["k4"]="v4"
print(dic)

5.请删除字典中键值对'k1','v1',并输出删除后的字典

dic = {'k1':'v1','k2':'v2','k3':'v3'}
dic.pop("k1")
print(dic)

6.请删除字典中键'k5'对应的键值对,如果字典中不存在键'k5',则不报错,并且让其返回none

dic = {'k1':'v1','k2':'v2','k3':'v3'}
dic.pop("k5")
if 'k5 'not in dic:
    print("none")

7.请获取字典中'k2'对应的值

dic = {'k1':'v1','k2':'v2','k3':'v3'}
value=dic.get("k2")
print(value)

8.请获取字典中'k6'对应的值,如果'k6'不存在,则不报错,并且让其返回Nnoe

dic = {'k1':'v1','k2':'v2','k3':'v3'}
value=dic.get("k6")
if "k6"not in dic:
    print("none")
else:
    print(value)

9.现有dic2 = {'k1':'v111','a':'b'}请通过一行操作使dic2 = {'k1':'v1','k2':'v2','k3':'v3','a':'b'}

dic2 = {'k1':'v111','a':'b'}
dic= {'k1':'v1','k2':'v2','k3':'v3','a':'b'}
dic2.update(dic)
print(dic2)

10.组合嵌套题,写代码,有如下列表,按照要求实现每一个功能 lis = [['k',['qwe',20,{'k1':['tt',3,'1']},89],'ab']]

10.1.将列表lis 中的'tt'变成大写(用两种方式)

upper() 将字符串中的小写字母转为大写字母

用法:str.upper()

lis = [['k',['qwe',20,{'k1':['tt',3,'1']},89],'ab']]
#将列表lis 中的'tt'变成大写(用两种方式)
#upper()
list=lis[0][1][2].get('k1')[0].upper()
print(list)

swapcase()

将字符串中的小写字母转为大写字母

lis = [['k',['qwe',20,{'k1':['tt',3,'1']},89],'ab']]
#将列表lis 中的'tt'变成大写(用两种方式)
#upper()
list=lis[0][1][2].get('k1')[0].swapcase()
print(list)

10.2.将列表中的数字3 变成字符串'100'(用两种方式)

lis = [['k',['qwe',20,{'k1':['tt',3,'1']},89],'ab']]
#将列表中的数字3 变成字符串'100'(用两种方式)
#upper()
list=lis[0][1][2].get('k1')[1]='100'
print(lis)
lis = [['k',['qwe',20,{'k1':['tt',3,'1']},89],'ab']]
#将列表中的数字3 变成字符串'100'(用两种方式)
#upper()
list={'k1':['tt',100,'1']}
lis[0][1][2].update(list)
print(lis)

10.3 将列表中的字符串'1'变成数字101(用两种方式)

lis = [['k',['qwe',20,{'k1':['tt',3,'1']},89],'ab']]
#将列表中的字符串'1'变成数字101(用两种方式)
#upper()
lis[0][1][2].get('k1')[2]=100
print(lis)
lis = [['k',['qwe',20,{'k1':['tt',3,'1']},89],'ab']]
#将列表中的字符串'1'变成数字101(用两种方式)
#upper()
dic={'k1':['tt',101,'1']}
lis[0][1][2].update(dic)
print(lis)

11 按照要求实现以下功能:

现有一个列表li = [1,2,3,'a','b',4,'c'],有一个字典(此字典是动态生成的,你并不知道他里卖弄有多少键值对,所以

dic = {}模拟此字典);现在需要完成这样的操作:如果该字典没有'k1'这个键,那就创建'k1'键和其对应的值(该键对应的值设置为空列表)

并将列表li 中的 索引为奇数的对应元素,添加到'k1'这个键对应的空列表中。如果该字典有'k1'这个键,且'k1'对应的value

是列表类型,那就将li中的索引为奇数的对应元素,添加到'k1'这个键对应的键中

第二章总结-练习

1、请用代码实现:利用下划线将列表的每一个元素拼接成字符串,li=['alex', 'eric', 'rain']

li = ['alex','eric','rain']
li_1='_'.join(li)
print(li_1)

2、查找列表中元素,移除每个元素的空格,并查找以a或A开头并且以c结尾的所有元素。

li = ["alec", " aric", "Alex", "Tony", "rain"]

tu = ("alec", " aric", "Alex", "Tony", "rain")

dic = {'k1': "alex", 'k2': ' aric', "k3": "Alex", "k4": "Tony"}

知识点:

startswith() 方法用于检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False

endsWith() 方法用于测试字符串是否以指定的后缀结束

li_tu=list(tu)
li_dic=list(dic.values())
new_list=li+li_tu+li_dic
for i  in  new_list:
    ret=i.strip()
    if (ret.startswith('a') or ret.startswith('A') or ret.endswith('c')):
        print(ret)

3、写代码,有如下列表,按照要求实现每一个功能

li=['alex', 'eric', 'rain']

a.计算列表长度并输出

li = ['alex','eric','rain']
print(len(li))

b.列表中追加元素“seven”,并输出添加后的列表

li = ['alex','eric','rain']
li.append('sever')
print(li)

c.请在列表的第1个位置插入元素“Tony”,并输出添加后的列表

li = ['alex','eric','rain']
li.insert(0,'Tony')
print(li)

d.请修改列表第2个位置的元素为“Kelly”,并输出修改后的列表

li = ['alex','eric','rain']
li[1]='Kelly'
print(li)

e.请删除列表中的元素“eric”,并输出修改后的列表

li = ['alex','eric','rain']
del li[1]
print(li)

f.请删除列表中的第2个元素,并输出删除的元素的值和删除元素后的列表

li = ['alex','eric','rain']
print(li,li.pop(1) )

g.请删除列表中的第3个元素,并输出删除元素后的列表

li = ['alex','eric','rain']
del li[2]
print(li)

h.请删除列表中的第2至4个元素,并输出删除元素后的列表

li= ['alex','eric','rain','Tony']
del li[1:]
print(li)

i.请将列表所有的元素反转,并输出反转后的列表

li= ['alex','eric','rain','Tony']
del li[1:]
print(li)

j.请使用for、len、range输出列表的索引

li= ['alex','eric','rain','Tony']
for i in range(len(li)):
    print(i)

k.请使用enumrate输出列表元素和序号(序号从100开始)

enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。

li= ['alex','eric','rain','Tony']
print(list(enumerate(li,start=100)))

l.请使用for循环输出列表的所有元素

li= ['alex','eric','rain','Tony']
for i in li:
    print(i)

4、写代码,有如下列表,请按照功能要求实现每一个功能

li = ["hello", 'seven', ["mon", ["h", "kelly"], 'all'], 123, 446]

  • 请根据索引输出“Kelly”
  • 请使用索引找到'all'元素并将其修改为“ALL”,如:li[0][1][9]...
li = ["hello", 'seven', ["mon", ["h", "kelly"], 'all'], 123, 446]
print(li[2][1][1])
li = ["hello", 'seven', ["mon", ["h", "kelly"], 'all'], 123, 446]
li[2][2]='ALL'
print(li)

5、写代码,有如下元组,请按照功能要求实现每一个功能

tu=('alex', 'eric', 'rain')

  • 计算元组长度并输出
  • 获取元组的第2个元素,并输出
  • 获取元组的第1-2个元素,并输出
  • 请使用for输出元组的元素
  • 请使用for、len、range输出元组的索引
  • 请使用enumrate输出元祖元素和序号(序号从10开始)

6、有如下变量,请实现要求的功能

tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11,22,33)}, 44])

  • 讲述元祖的特性
  • 请问tu变量中的第一个元素“alex”是否可被修改?
  • 请问tu变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素“Seven”
  • 请问tu变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素“Seven”

 特性: 1.可存放多个值;   2.不可变;  3.按照从左到右的顺序定义元组元素,下标从0开始顺序访问,有序
b 不可被修改。

c    k2对应的值是列表,可以被修改。

d   k3对应的是元组,不能被修改。

7、字典

dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}

  • 请循环输出所有的key
  • 请循环输出所有的value
  • 请循环输出所有的key和value
  • 请在字典中添加一个键值对,"k4": "v4",输出添加后的字典
  • 请在修改字典中“k1”对应的值为“alex”,输出修改后的字典
  • 请在k3对应的值中追加一个元素44,输出修改后的字典
  • 请在k3对应的值的第1个位置插入个元素18,输出修改后的字典

a.

dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
for k in dic:
    print(k)

b.

dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
for k in dic.values():
    print(k)

c.

dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
for k,v in dic:
    print(k,v)

d.

dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
dic['k4']='v4'
print(dic)

e.

dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
dic['k1']='alex'
print(dic)

f.

dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
dic['k3'].append(44)
print(dic)

g.

dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
dic['k3'].insert(0,44)
print(dic)

8.转换

  • 将字符串s = "alex"转换成列表
  • 将字符串s = "alex"转换成元祖
  • 将列表li = ["alex", "seven"]转换成元组
  • 将元祖tu = ('Alex', "seven")转换成列表
  • 将列表li = ["alex", "seven"]转换成字典且字典的key按照10开始向后递增
  • 8888

a.

s='alex'
s=list(s)
print(s)

b.

s = "alex"
s=tuple(s)
print(s)

c.

li = ["alex", "seven"]
li=tuple(li)
print(li)

d.

tu = ('Alex', "seven")
tu=list(tu)
print(tu)

e.

li = ["alex", "seven"]
dic={}
for k,v in enumerate(li,10):
    dic[k]=v
    print(dic)

enumerate() 方法

enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。

>>>seasons = ['Spring', 'Summer', 'Fall', 'Winter'] >>> list(enumerate(seasons)) [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')] >>> list(enumerate(seasons, start=1)) # 下标从 1 开始 [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]

9、元素分类

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

即:{'k1':大于66的所有值, 'k2':小于66的所有值}

10、输出商品列表,用户输入序号,显示用户选中的商品

商品li = ["手机", "电脑", '鼠标垫', '游艇']

  • 允许用户添加商品
  • 用户输入序号显示内容

11、用户交互显示类似省市县N级联动的选择

  • 允许用户增加内容
  • 允许用户选择查看某一个级别内容

12、列举布尔值是False的所有值

13、有两个列表

  l1 = [11,22,33]

  l2 = [22,33,44]

  • 获取内容相同的元素列表
  • 获取l1中有,l2中没有的元素列表
  • 获取l2中有,l1中没有的元素列表
  • 获取l1和l2中内容都不同的元素

14、利用For循环和range输出

  • For循环从大到小输出1 - 100
  • For循环从小到到输出100 - 1
  • While循环从大到小输出1 - 100
  • While循环从小到到输出100 - 1

15、利用for循环和range输出9 * 9乘法表

16、求100以内的素数和。(编程题)

   解题思路:

  1. 求出100以内除了1的所有整数(1不是素数)。
  2. 用每一个整数分别除以比他小的整数,判断是否可以整除。
  3. 定义一个空列表,用以储存素数。
  4. 设定一个判断条件。

17、将[1,3,2,7,6,23,41,24,33,85,56]从小到大排序(冒泡法)(编程)

18、分页显示内容

a.通过for循环创建301条数据,数据类型不限,如:
alex-­‐1alex1@live.compwd1
alex-­‐2alex2@live.compwd2
alex-­‐3alex3@live.compwd3
....

b.提示用户请输入要查看的页码,当用户输入指定页码,则显示指定数据

注意:
-­‐每页显示10条数据
-­‐用户输入页码是非十进制数字,则提示输入内容格式错误

19、有1、2、3、4、5、6、7、8、8个数字,能组成多少个互不相同且无重复数字的3位数?

20、有一下列表,
nums=[2,7,11,15,1,8,7]
请找到列表中任意两个元素相加能够等于9的元素集合,如:[(0,1),(4,5)]

21、用Python开发程序自动计算方案:

公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,用100文钱买100只鸡,其中公鸡,母鸡,小鸡都必须要有,问公鸡,母鸡,小鸡要买多少只刚好凑足100文钱?

补加练习题:

分别用append、extend方法,给一个序列增加一个元素

x.append([1,2,3])和x.extend([1,2,3])的区别

 x.append('abc')和x.extend('abc')的区别

 sort()和sorted()什么区别

 m=[4,5,6,73,4,4,4,4,2],删除所有的4

原文地址:https://www.cnblogs.com/hantongxue/p/11295231.html