python之路day04--列表的增删改查,嵌套、元组的嵌套、range、for循环嵌套

python

列表增删改查

增加 append

li = ['taibai','zy','nvshen']

li.append('aa')

print(li) #['taibai', 'zy', 'nvshen', 'aa']

#需求:循环,交互,退出

# li = ['taibai','zy','nvshen']

#

# while 1:

# username = input('请输入:')

# if username.strip().upper() == 'Q'.upper():

# print('成功退出')

# break

# else:

# li.append(username)

# print(li)

insert 插入

li.insert(3,'bb')

print(li) #['taibai', 'zy', 'nvshen', 'bb', 'aa']

extend 迭代迭代每一个元素

li.extend('abcdfg')

print(li) #['taibai', 'zy', 'nvshen', 'bb', 'aa', 'a', 'b', 'c', 'd', 'f', 'g']

li.extend([1,2,3,'vc',[1,2,3]]) #迭代列表里的每一个元素

print(li) #['taibai', 'zy', 'nvshen', 'bb', 'aa', 'a', 'b', 'c', 'd', 'f', 'g', 1, 2, 3, 'vc', [1, 2, 3]]

#pop

li = ['taibai','zy','nvshen']

li.pop(0)

print(li) #['zy', 'nvshen']

#remove

li.remove('zy')

print(li) #['nvshen']

#clear

li.clear()

print(li)#[]

删除整个列表del

li =[1,2,3,'taibai']

del li

print(li)

li = ['taibai','zy','nvshen']

li[0] = 'z' #右边的赋值给左边

print(li) #['z', 'zy', 'nvshen']


print(li[0:2]) #['z', 'zy']

# li[0:2] = 'zhangyang'

# print(li) #['z', 'h', 'a', 'n', 'g', 'y', 'a', 'n', 'g', 'nvshen']

查找列表中每一个元素

for i in li:

print(i)

print(li.index('zy'))  #1

#切片、索引 查找

print(li[0]) #z

print(li[0:2])#['z', 'zy']

公共方法

len

len

li = ['taibai','zy','nvshen']

li2 = ['taibai','zy','nvshen',1,[1,2,3]]

l = len(li)

l1 = len(li2)

print(l) #3

print(l1) #5 #返回列表中有多少元素

count

print(li.count('taibai'))#1

index 找索引

print(li.index('taibai')) #0

sort 排序

li = [1,2,4,5,8,9]

li.sort()

print(li) #[1, 2, 4, 5, 8, 9]

#排序后反转

li.sort(reverse=True)     #def sort(self, key=None, reverse=False): #默认reverse=False 为正序

print(li) #[9, 8, 5, 4, 2, 1]

反转 (不等于排序)

li = [1,2,4,5,8,9]

li.reverse()

print(li) #[9, 8, 5, 4, 2, 1]

列表的嵌套

li =['taibai','武藤','苑昊',['alex','egon',89],23]

#找到藤--找到字符串在进行切片

print(li[1][1]) #藤

print(li[3][0][1]) #l

#找到taibai,改成Taibai在放回去

li[0]=li[0].capitalize()

print(li) #['Taibai', '武藤', '苑昊', ['alex', 'egon', 89], 23]

#昊改成日天在放回去

li[2] ='苑日天'

print(li) #['Taibai', '武藤', '苑日天', ['alex', 'egon', 89], 23]

li[2]=li[2].replace('昊','日天') #字符串只能替换,不能修改

print(li) #['Taibai', '武藤', '苑日天', ['alex', 'egon', 89], 23]

#找到alex 全部变成大写,放回原处

li[3][0]=li[3][0].upper()

print(li) #['Taibai', '武藤', '苑日天', ['ALEX', 'egon', 89], 23]

元组的嵌套

#元组 (只读列表) 可以被查询,不可以修改,可循环查询,可切片

# 儿子不能改,孙子可以改 #taibai属于列表(可以修改),列表属于这个元组

tu =(1,2,3,'alex',[1,2,3,'taibai'],'egon')

print(tu[3]) #alex

print(tu[0:3]) #(1, 2, 3)

for i in tu:

print(i)

#1

2

3

alex

[1, 2, 3, 'taibai']

egon

taibai 改成全大写

tu[4][3]=tu[4][3].upper()

print(tu) #(1, 2, 3, 'alex', [1, 2, 3, 'TAIBAI'], 'egon')

tu[4].append('sb')

print(tu) #(1, 2, 3, 'alex', [1, 2, 3, 'TAIBAI', 'sb'], 'egon')

  元祖

如果元组里面只有一个元素且不加逗号,那此元素是什么数据类型,他就是什么类型

tu1=(1)
tu2=(1,)
print(tu1,type(tu1)) #1 <class 'int'>
print(tu2,type(tu2)) #(1,) <class 'tuple'>

tu1=([1])
tu2=([1],)
print(tu1,type(tu1)) #1 <class 'int'>
print(tu2,type(tu2)) #(1,) <class 'tuple'>

join-->list --str (列表转换成字符串)
split-->str --list(字符串转换成列表)

join S.join(iterable) -> str   (范围是可迭代对象,int 和bool不行)

join-->list --str (列表转换成字符串)

split-->str --list(字符串转换成列表)

s='alex'

s1= '_'.join(s)

print(s1) #a_l_e_x

s2 = '+'.join(s)

print(s2) #a+l+e+x

l =['taibai','武藤','苑昊']

l1 =''.join(l) #返回的是字符串

print(l1) #taibai武藤苑昊

range

#range 相当于一个列表,里面都是数字  range(0,10,2) 首尾+步长

for i in range(0,100):

print(i)

for i in range(10,0,-1): #从10开始,0结束,步长-1

print(i) # 10,9,8,7,6,5,4,3,2,1

for循环嵌套

循环输出列表中元素,包括列表中的列表

print(type(li)) #<class 'list'>

li = [1,2,3,5,'alex',[2,3,4,5,'taibai'],'wusri']

1)直接循环找出list

for i in li:

if type(i) == list:

for j in i:

print(j)

else:

print(i)

2)用索引来找出type=list

for i in range(len(li)):

if type(li[i]) == list:

for j in li[i]:

print(j)

else:

print(li[i])

相关练习题

# 习题:

lis = [2,3,'k',['qwe',20,['kl',['tt',3,'1']],89],'ab','asv']

1)将列表list中的'tt'变成大写(两种方式)

2)将列表中的数字3变成字符串'100'(两种)

3) 将列表中的字符串'1'变成数字101(两种)

1.

lis[3][2][1][0] = 'TT'

print(lis) #[2, 3, 'k', ['qwe', 20, ['kl', ['TT', 3, '1']], 89], 'ab', 'asv']

lis[3][2][1][0]=lis[3][2][1][0].upper()

print(lis) #[2, 3, 'k', ['qwe', 20, ['kl', ['TT', 3, '1']], 89], 'ab', 'asv']

lis[3][2][1][0]=lis[3][2][1][0].replace('tt','TT') #替换字符串replace

print(lis) #[2, 3, 'k', ['qwe', 20, ['kl', ['TT', 3, '1']], 89], 'ab', 'asv']

2.

lis[1] = '100'

lis[3][2][1][1] = '100'

print(lis)#[2, '100', 'k', ['qwe', 20, ['kl', ['tt', '100', '1']], 89], 'ab', 'asv']

lis[3][2][1].remove(3)

# lis[3][2][1].insert(1,'100')

# print(lis)#[2, 3, 'k', ['qwe', 20, ['kl', ['tt', '100', '1']], 89], 'ab', 'asv']

3.

lis[3][2][1][2] = 100

print(lis) #[2, 3, 'k', ['qwe', 20, ['kl', ['tt', 3, 100]], 89], 'ab', 'asv']

lis[3][2][1][2]=int(lis[3][2][1][2].replace('1',str(100)))

print(lis)#[2, 3, 'k', ['qwe', 20, ['kl', ['tt', 3, 100]], 89], 'ab', 'asv']

习题:
1/如有下值li=[11,22,33,44,55,66,77,88,99,90],将所有大于66的值保存在字典的一个key中。if 将所有小于66的值保存在字典的2个key中:
即:{'k1':大于66的所有值列表,'k2':小于66的所有值列表}

li=[11,22,33,44,55,66,77,88,99,90]

l1=[]

l2=[]

dic={}

for i in li:

if i == 66:

continue

if i >66:

l1.append(i)

else:

l2.append(i)

dic.setdefault('key1',l1)

dic.setdefault('key2',l2)

print(dic)


2/输出商品列表,用户输入序号,显示用户选中的商品
商品li=['手机','电脑','鼠标垫','游艇']
要求:
1.页面显示 序号+商品名称,如:
1 手机
2 电脑
...
2.用户输入选择的商品序号,然后打印商品名称
3.如果用户输入的商品序号有误,则提示显示有误,并重新输入。
4.用户输入Q或者q,退出程序。

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

for i in li:

print('{}\t{}'.format(li.index(i)+1,i))

while 1:

num = input('请输入选择的商品的序号/输出Q或q退出:')

if num.isdigit():

if int(num) <= len(li) and int(num) > 0:

print(li[int(num)-1])

else:

print('输入有误,请重新输入')

elif num.strip().upper() == 'Q':

print('成功退出!')

break

else:

print('请重新输入,只能输入号码')

需求在lis中找到奇数为并做删除操作

lis=[11,22,33,44,55]

for i in lis:

if i%2 == 1:

print(i,type(i))

lis.remove(i)

print(lis) #[22, 44]

以上是 python之路day04--列表的增删改查,嵌套、元组的嵌套、range、for循环嵌套 的全部内容, 来源链接: utcz.com/z/388975.html

回到顶部