列表增删改查

增加 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'))  #
#切片、索引 查找
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) #
print(l1) #5 #返回列表中有多少元素
count
print(li.count('taibai'))#
index 找索引
print(li.index('taibai')) #
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)
#
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,'']],89],'ab','asv']
1)将列表list中的'tt'变成大写(两种方式)
2)将列表中的数字3变成字符串''(两种)
3) 将列表中的字符串''变成数字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] = ''
lis[3][2][1][1] = ''
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('',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循环嵌套的更多相关文章

  1. Python(二)列表的增删改查

    一,列表的增删改查 列表中增加元素: 1,从列表的末尾增加一个元素:append("") 2,从列表中插入一个元素:insert(下标位置,插入的元素) 合并列表: 1,name. ...

  2. python之路day05--字典的增删改查,嵌套

    字典dic 数据类型划分:可变数据类型,不可变数据类型 不可变数据类型:元组,bool,int str -->可哈希可变数据类型:list,dict,set --> 不可哈希 dict k ...

  3. python基础之list列表的增删改查以及循环、嵌套

    Python的列表在JS中又叫做数组,是基础数据类型之一,以[]括起来,以逗号隔开,可以存放各种数据类型.嵌套的列表.对象.列表是有序的,即有索引值,可切片,方便取值.列表的操作和对字符串的操作是一样 ...

  4. 列表(增删改查)元组tupe

    增加:有三种,append:在后面添加.Insert按照索引添加,expend:迭代着添加.#append li = ['lishi','alex','lili'] li.append(') prin ...

  5. Python列表的增删改查排嵌套特殊输出格式

    Python列表的增删改查排嵌套特殊输出格式 一.列表的样子: a = ['q' , 'w' , 'e ', 'r','t'] a为列表名,[ ]为列表内容,' '为列表内的元素,'q'为a[0] 二 ...

  6. python列表的增删改查和嵌套

    列表 python常用的数据类型 可承载任意的数据类型 列表是有序的,可索引.切片(步长) 列表的创建 list1 = [1, 2, 'whll'] #1. list2 = list() #2. #3 ...

  7. 列表的初识,列表的索引切片,列表的增删改查,列表的嵌套,元组的初识,range

    1 内容总览 列表的初识 列表的索引切片 列表的增删改查 列表的嵌套 元组的初识(了解) 元组的简单应用(了解) range 2 具体内容 列表的初识 why: str: 存储少量的数据.切片出来全都 ...

  8. python操作三大主流数据库(8)python操作mongodb数据库②python使用pymongo操作mongodb的增删改查

    python操作mongodb数据库②python使用pymongo操作mongodb的增删改查 文档http://api.mongodb.com/python/current/api/index.h ...

  9. python操作三大主流数据库(2)python操作mysql②python对mysql进行简单的增删改查

    python操作mysql②python对mysql进行简单的增删改查 1.设计mysql的数据库和表 id:新闻的唯一标示 title:新闻的标题 content:新闻的内容 created_at: ...

随机推荐

  1. TCP/IP、UDP、HTTP、SOCKET详解

    文章大纲 网络OSI七层及各层作用 TCP与UDP基本介绍 TCP连接过程详解 SOCKET原理与连接详解     一.网络OSI七层及各层作用   应用层:文件传输,电子邮件,文件服务,虚拟终端 T ...

  2. Bootstrap -- 插件: 模态框、滚动监听、标签页

    Bootstrap -- 插件: 模态框.滚动监听.标签页 1. 模态框(Modal): 覆盖在父窗体上的子窗体. 使用模态框: <!DOCTYPE html> <html> ...

  3. HybridStart发布v1.0测试版

    HybridStart是一款多webview模式的混合应用前端开发框架,本来只是作者自用的一套混合应用开发模板,为了进一步提高混合应用开发效率,近期着重在框架高通用性和易用性方面做了较大改进,比如将U ...

  4. 我的第一个python web开发框架(23)——代码版本控制管理与接口文档

    书接上一回,小白和老菜聊到代码的版本控制和接口文档 小白:为什么要做版本控制,我不弄版本控制不也完成了项目了吗?要做版本控制不是很麻烦,又要安装服务又要提交代码,代码又不是多人用开发,还要写文档... ...

  5. 英语口语练习系列-C08-考试

    <蒹葭>-诗经 蒹葭苍苍,白露为霜.所谓伊人,在水一方.溯洄从之,道阻且长.溯游从之,宛在水中央. 蒹葭萋萋,白露未晞.所谓伊人,在水之湄.溯洄从之,道阻且跻.溯游从之,宛在水中坻. 蒹葭 ...

  6. 【Python 06】汇率兑换1.0-1(IPO与字符串转数字)

    1.案例描述 设计一个汇率换算器程序,功能是将外币换算成人民币. 2.案例分析 将问题划分为输入.处理及输出三部分(IPO) 3.上机实验 rmb_str_value = input('请输入人民币( ...

  7. There Are Now 3 Apache Spark APIs. Here’s How to Choose the Right One

    See Apache Spark 2.0 API Improvements: RDD, DataFrame, DataSet and SQL here. Apache Spark is evolvin ...

  8. 详解vuex结合localstorage动态监听storage的变化

    这篇文章主要介绍了详解vuex结合localstorage动态监听storage的变化,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 需求:不同组件间共用同一数据,当一个 ...

  9. centos 7 Chrony 集群同步时间

    Chrony有两个核心组件,分别是:chronyd:是守护进程,主要用于调整内核中运行的系统时间和时间服务器同步.它确定计算机增减时间的比率,并对此进行调整补偿.chronyc:提供一个用户界面,用于 ...

  10. Error:Execution failed for task ':app:processDebugManifest'. Manifest merger failed with multiple errors, see logs

    这个异常在网上一搜会出现很多答案,也可能都对. 我都尝试过但是不符合我这边的要求,问题得不到解决.网上的说法是对的,jar包冲突.不过究竟是哪里冲突没办法判断. 最后尝试了一下在module的中没用的 ...