python数据类型与功能二 | 基础五

· Special

列表是有序且可变的容器,元组是有序且不可变的容器

列表

定义

独有功能

公共功能

转换

嵌套

data = ['aa',['kk','oo'],True,[11,22,[999,123],33,44],'jkl']

#查询
....

#追加
data.append(666) # ['aa',['kk','oo'],True,[11,22,[999,123],33,44],'jkl',666]

#删除 作用于本身
del data[-2] #['aa',['kk','oo'],True,[11,22,[999,123],33,44],666]

#嵌套修改一
data[-2][1] = 'alex'
['aa',['kk','oo'],True,[11,'alex',[999,123],33,44],666]
#嵌套修改二
data[1][0:2] = [999,666]
#['aa',[999,666,'oo'],True,[11,'alex',[999,123],33,44],666]

补充

可分别赋值
v1,v2 = [1,2]
data = '1|2'
v1,v2 = data.split('|')

列表练习

1.
li = ['alex','wusir','ritian','barry','武沛齐']

#长度
print(len(li))

#追加
li.append('seven')
print(li)

# 1索引插入‘tony’

li.insert(1,'tony')
print(li)

# 2索引插入'Kelly'
li.insert(2,'Kelly')
print(li)

#列表2改‘妖怪’
li[2]='妖怪'
print(li)

#data = [1,'a',3,4,'heart']追加li
data = [1,'a',3,4,'heart']
# li.extend(data)
# print(li)

for i in data:
    li.append(i)

print(li)

2.
# s = 'qwert' 追加li
s = 'qwert'
li.extend(s)
print(li)

删除'barry'
li.remove('barry')
print(li)

#删除第二个元素
li.pop(1)
print(li)

#删除2:4
del li[2:5]
print(li)

li = [1,3,2,'a',4,'b',5,'c']

print(li[0:3])

print(li[3:6])

print(li[::2])

print(li[1:7:2])

print(li[1::2])

print(li[-1])
print(li[-1::])
print(li[7::])

print(li[5:0:-2])

3
lis = [2,3,'k',['qwe',20,['k1',['tt',3,'1']],89],'ab','adv']

lis[2] = lis[2].upper()

print(lis)

#将列表数字3改100
lis[1] = 100
lis[3][2][1][1] = 100
print(lis)

#tt改101
lis[3][2][1][0] = 100
print(lis)

#qwe插入火车头
lis[3].insert(0,'火车头')
print(lis)

4. 循环列表
users = ['武沛齐','景女神','肖大侠']

i = 0
while i<len(users):
    print(i,users[i])
    i+=1

for i in range(0,len(users)):
    print(i+1,users[i])

count_num = 1
for i in users:
    print(i, count_num)
    count_num += 1

5.
Goods = ['汽车','飞机','火箭']

#展示
for i in range(0,len(Goods)):
    print(i,Goods[i])

输入
while True:
    user_choice = input('请输入你选择工具的序号: ').strip()
    if user_choice.isdecimal() and int(user_choice) in list(range(len(Goods))):
        break
    else:
        print('请重新输入')

print(f'你输入的是{user_choice},你选择的是{Goods[int(user_choice)]}')

6.找出50以内能被3整除放入列表
can_division_num =[]
for i in range(51):
    if i == 0:
        continue
    if i%3 == 0:
        can_division_num.append(i)

print(can_division_num)

7. 插入列表第0个值
can_division_num =[]
for i in range(51):
    if i%3 == 0:
        can_division_num.insert(0,i)

print(can_division_num)

8.列表去空格,符合条件加新列表
li = ['alexc','AbC ','egon',' riTiAn','Wusir','  aqc']
new_list =[]
#去掉空格
for i in range(0,len(li)):
    li[i] = li[i].strip()
    if li[i].startswith('a'):
        new_list.append(li[i])

print(li)
print(new_list)

new_list =[]
#去掉空格
for i in range(0,len(li)):
    li[i] = li[i].strip()
    if not li[i].startswith('a'):
        continue
    new_list.append(li[i])

print(new_list)

#9. 找车票京
data =['京1231','晋17719','陕15588','琼47715','京556677']
jing_car_code = []
for i in range(0,len(data)):
    if not data[i].startswith('京'):
        continue
    jing_car_code.append(data[i])

print(jing_car_code,len(jing_car_code))

元组

定义

独有功能

公共功能

索引切片步长,适用于新数据,不作用旧数据

转换

嵌套

li = ['alex',[11,22,(88,99,100,),33],'wusir',(ritian,barry),'wenzhou']

#wusir修改wupeiqi
li[2] ='wupeiqi'

#('ritian','barry')修改 ['ritian'ridi']
li[3] = ['ritian'ridi']

#wenzhou删除
li.remove('wenzhou')
li.pop(-1)
del li[-1]

#索引0添加'zhouzhou'

li.ibnsert(0,'zhouzhou')
元组中的具有可被修改的元素比如列表,列表内部可被修改
>>> a = ('a','b',[0,1,2,3,4,('aa','bb')])
>>> a[2].append(66)
>>> a
('a', 'b', [0, 1, 2, 3, 4, ('aa', 'bb'), 66])

元组练习

登录验证可用标志位
# 用户名元组加入列表

#用户添加
user_list = []
while True:
    user = input('Enter Your name : ').strip()
    if user.upper() == 'Q':
        break
    pwd = input('Enter Your password : ').strip()

    data = (user, pwd)
    user_list.append(data)

# user_list = [('aa', 'bb'), ('cc', 'dd'), ('ee', 'ff')]

# 用户登录

login_verify = False

user_login = input('Enter Your Login : ').strip()
user_password = input('Enter Your Password : ').strip()

for i in user_list:
    if i[0] == user_login and i[1] == user_password:
        login_verify = True
        break

if login_verify:
    print('Login Successful')
else:
    print('Login Failed')
#字符串切割为列表,转元组
text = 'wupeiqi|eric|alex'
data = text.split('|')
data = tuple(data)
print(data)

#生成扑克牌
color_list = ['红桃','黑桃','方块','梅花']
result = []

for i in color_list:
    for j in range(1,14):
        data = (i,j)
        result.append(data)

print(result)

windows · python


评论