一,列表

1)定义:

[]内以逗号分隔,按照索引,存放各种数据类型,每一个位置代表一个元素

2)特性:

1 可存放多个值
2 按照从左到右的顺序定义列表元素,下标为零开始顺序访问,有序
3可修改指定索引位置对应的值,是可变的,

3)列表的操作和字符串一样

  1,切片是和字符串一样的

#例1
lst=["猪八戒","孙悟空","唐僧","沙僧",["观音","如来","蓝灯","十八罗汉",["太上老君","太白金星","哪吒","木吒","金吒"]]]
print(lst[3])
print(lst[4][4][3])
print(lst[4][4][2:5:2])
print(lst[::-2])
print(lst[::-1])
#例2
lst = ["华仔", '赫本', '赵四', "孙艺珍", '车太贤']
print(lst[3][1]) # 索引拿到的是元素
print(lst[-3])
print(lst[1:3]) # 切片也一样
print(lst[::-2]) # 反着切也OK

2.列表的增删改查

#_1新增
lst = ["西红柿首富","无双", "影", "超能泰坦"]
print(lst.append("")) # 可变的数据类型 没有返回值
# 追加。 添加到末尾(重点)
lst.append("找到你")
lst.append("鬼子来了")
lst.append("前任4")
print(lst)
# 插入
lst.insert(0, "建国大业") # 插入, 效率不高. 索引的变更
lst.insert(2, "美国往事")
迭代添加
lst.extend("周杰伦") # ["周杰伦"][0]
lst.extend(["倚天屠龙记", "乡村爱情"])
print(lst)
#_2删除
lst = ["杰森斯坦森", "勒布朗詹姆斯", "尼古拉斯凯奇", "郭达森"]
pop() 弹出一个, 默认弹出最后一个
lst.pop()
lst.pop(1) # 可以弹出指定位置的元素
ret = lst.pop() # 返回值是被删除的元素
ret = lst.pop(2)
print(ret)
remove # 移除 , 指定元素, 删除第一个
lst.remove("勒布朗詹姆斯") #
lst.remove("尼古拉斯凯奇")
  #切片删除
del lst[2] # 类似pop
del lst[2:] # 批量删除
del lst[1:5:2] # 切片删除
lst.clear() # 清空列表
print(lst)
#_3修改
lst = ["周杰伦", "周笔畅", "周星驰", "周润发"]
lst[1] = "周星星" # 指定索引去修改. (重点)
lst[1:3] = "马虎疼" # 迭代修改
lst[1:3] = ["马虎疼"]
lst[::2] = ["马虎疼", "王健林"] # 当切片出来的内容步长如果不是1:元素的个数必须要匹配
lst[::2] = "马云"
print(lst)
#_4查询
lst = ["胡辣汤", "猪脚饭", "吱吱冒油的猪蹄子", "猪头肉"]
food表示列表中的每一项
for food in lst: # 列表可以使用for循环。 list是一个可迭代对象
print(food)
lst = [1, 2, 4, 21, 4, 2, 22, 123, 4, 68]
lst.sort() # 排序. 从小到大. 升序
lst.sort(reverse=True) # 倒序。 降序. 从大到小
lst.reverse() # 翻过来
print(lst)
print(len(lst)) # 长度
#_5列表的嵌套
lst = [["葫芦娃", "黑猫警长","西游记"], ["武斗乾坤", "wahaha", "斗破苍穹", "盘龙"], ["三体", "明朝那些事儿"]]
print(lst[1][0])
print(lst[2][2][0])
#_降维: 一层一层的找
# 把wahaha中的a换成b
lst[1][1] = lst[1][1].replace("a", "b") # 多层嵌套的时候如果进行操作。 需要重新赋值。 原因是替换的内容是一个 字符串
lst[1].insert(1, "大闹天宫") # 对于内部元素如果是可变的数据类型。 直接改就行了
print(lst)

二,元组

定义: tuple表示 ,  由()组成内部元素用逗号隔开
特点:不可变 只读列表。 也有索引 和切片功能
t = ("周杰伦", "哇哈哈", "爽歪歪", "酸酸乳", "三鹿奶粉", "AD钙奶")
print(t[1])
print(t[1:5]) # 切片的结果是一个元组
print(t[1:5:2])
t[1] = "益力多" # TypeError: 'tuple' object does not support item assignment #元组的不可变. 元组的不可变指的是元组内部第一层元素的内存地址
t = ("张无忌", "周芷若", "赵敏")
t[0] = "胡辣汤"
t = ("周润发", "周星驰", ["渣渣辉","古天绿","陈小春"])
t[2].append("李嘉诚")
print(t)
lst1 = [] # 新列表
lst2 = list() # 新列表
print(lst1, lst2)
t1 = () # 元祖
t2 = tuple() # 元祖
print(t1, t2)
# 元组如果只有一个元素。必须加逗号
t1 = (1, 3, 5, 7, 9,) # () 运算符 优先级
lst = ["哈哈", ]
print(t1)
print(lst)

三,for循环用来查找列表中元素和索引

lst = ["语文", "数学", "英语", "代数", "体育", "生物", "生物第二学期"]
for ke in lst: # 默认的for循环会忽略掉索引
print(ke)
# 获取到元素的索引和元素-背下来
for i in range(len(lst)):
# i #是索引
# lst[i] #获取元素
print(i, lst[i]) s = "我今天下午要吃鸡"
for i in range(len(s)):
print(i, s[i])

四,练习

li=["alex","WuSer","ritian","wenzhou"]
1)计算列表的长度并输出
print(len(li))
2)列表中追加元素"seven"并输出添加后的列表
li.append("seven")
print(li)
3)请在列表的第1个位置插⼊元素"Tony",并输出添加后的列表
li.insert(1,"Tony")
print(li)
4) 请修改列表第2个位置的元素为"Kelly",并输出修改后的列表
li[2]=" Kelly"
print(li)
5)请将列表l2=[1,"a",3,4,"heart"]的每一个元素添加到列表li中,一行代码实
现,不允许循环添加
l2=[1,"a",3,4,"heart"]
li.extend(l2[0:])
print(li)
print(li)
6)请将字符串s = "qwert"的每一个元素添加到列表li中,一行代码实现,不
s="qwert"
li.extend(s)
print(li)
7) 添加"eric"元素,并输出结果
li.append("eric")
print(li)
8)请删除列表中的第2个元素,并输出删除的元素和删除元素后的列表
li.pop(2)
print(li)
9)请删除列表中的第2⾄4个元素,并输出删除元素后的列表
del li[2:5]
print(li)
10)请将列表所有得元素反转,并输出反转后的列表
li.reverse()
print(li)
11)请计算出"alex"元素在列表li中出现的次数,并输出该次数。
count=0
for i in li :
if [i]==["alex"] :
count +=1
continue
print(count)
2,写代码,有如下列表,利用切片实现每一个功能
li = [1, 3, 2, "a", 4, "b", 5,"c"]
# 1)通过对li列表的切片形成新的列表l1,l1 = [1,3,2]
l1=li[0:3]
print(l1)
# 2)通过对li列表的切片形成新的列表l2,l2 = ["a",4,"b"]
l2=li[3:6]
print(l2)
# 3)通过对li列表的切片形成新的列表l3,l3 = ["1,2,4,5]
l3=li[0::2]
print(l3)
# 4)通过对li列表的切片形成新的列表l4,l4 = [3,"a","b"]
l4=li[1:6:2]
print(l4)
# 5)通过对li列表的切片形成新的列表l5,l5 = ["c"]
l5=[li[-1]]
print(l5)
# 6)通过对li列表的切片形成新的列表l6,l6 = ["b","a",3]
l6=li[-3::-2]
print(l6)
3,写代码,有如下列表,按照要求实现每一个功能。
lis = [2, 5, "k", ["qwe", 20, ["k1", ["tt", 3, ""]], 89], "ab", "adv"]
1)将列表lis中的"tt"变成大写(用两种方式)。
方式1
lis[3][2][1][0]=lis[3][2][1][0].upper()
print(lis)
方式2
lis[3][2][1][0]=lis[3][2][1][0].replace("tt","TT")
print(lis)
2)将列表中的数字3变成字符串""(用两种方式)。
方式1
lis[3][2][1][1] = ""
方式2
lis[3][2][1][1] = str(lis[3][2][1][1] + 97)
方式三
lis[3][2][1][1] = str(lis[3][2][1][1]).replace("", "")
3)将列表中的字符串""变成数字101(用两种方式)。
方式1
lis[3][2][1][2] = int(lis[3][2][1][2]+"")
方式2
lis[3][2][1][2] = int(lis[3][2][1][2].replace("", ""))
4, 请用代码实现:
li = ["alex", "eric", "rain"] 利用下划线将列表的每一个元素拼接成字符串 "alex_eric_rain"
#方法一
li=["alex","eric","rain"]
li[0:] =["alex_eric_rain"]
print(li)
#方法二
li = ["alex", "eric", "rain"]
s = ""
for name in li:
s += name+"_"
print(s.strip("_"))
print(s[:len(s)-1]) # 当我确定最后一个一定是_的时候
#方法三
print("_".join(li))
5.利用for循环和range打印出下面列表的索引。
li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
for index in range(0,len(li)):
print(index)
6.利⽤for循环和range找出100以内所有的偶数并将这些偶数插入到一个新列表中。
ko=[]
for i in range(0,100):
if i%2==0:
ko.append(i)
print(ko)
7.利用for循环和range找出50以内能被3整除的数,并将这些数插入到一个新列表中。
ko=[]
for i in range(0,50):
if i%3 ==0:
ko.append(i)
print(ko)
8.利⽤for循环和range从100~1,倒序打印。
ko=[]
for i in range(1,101):
ko.append(i)
print(ko[::-1])
9.利⽤for循环和range从100~10,倒序将所有的偶数添加到一个新列表中,然后对列表的元素进行筛选,将能被4整除的数留下来。
ko=[]
for i in range(10,100):
if i%2==0:
ko.append(i)
for j in ko:
if j%4==0:
print(j)
10,利用for循环和range,将1 - 30的数字一次添加到一个列表中,并循环这个列表,将能被3整除的数改成 *
ko=[]
for i in range(1,30):
ko.append(i)
for j in range(len(ko)):
if ko[j]%3 ==0:
ko[j] = "*"
print(ko)
11,查找列表li中的元素,移除每个元素的空格,并找出以 "A"或者"a"开头,并以"c"结尾的所有元素,并添加到一个新列表中,
最后循环打印这个新列表。li = ["TaiBai ", “alexC", “AbC ", "egon", " ri TiAn", "WuSir", " aqc"]
li = ["TaiBai ", "alexC", "AbC ", "egon", " ri TiAn", "WuSir", " aqc"]
ko=[]
for i in li :
li=i.strip()
if i.capitalize().startswith("A") and i.endswith("c")==1:
ko.append(i)
print(ko)

  

12,开发敏感词语过滤程序,提示⽤用户输入评论内容,如果用户输户的内容中包含特殊的字符:
敏感词列表li = ["苍老师", "东京热", "武藤兰", "波多野结⾐"]
则将用户输入的内容中的敏感词汇替换成等长度的 *(苍老师就替换 ** *),并添
加到一个列表中;如果用户输入的内容没有敏感词汇,则直接添加到上述的列 表中。
lis=[]
li = ["苍老师", "东京热", "武藤兰", "波多野结衣"]
content= input("请输入评论:")
for i in li :
if i in content:
content = content.replace(i,"*"*len(i))
lis.append(content)
print(content)
13,有如下列表
li = [1, 3, 4, "alex", [3, 7, 8, "TaiBai"], 5, "RiTiAn"]
#循环打印列表中的每个元素,遇到列表则再循环打印出它⾥⾯的元素。我想要的结果是:
'''1
3
4
"alex"
3
7,
8
"taibai"
5
ritian
'''
for el in li:
if type(el) == list:
for el2 in el:
if type(el2) == str:
print(el2.lower())
else:
print(el2)
else:
if type(el)==str:
print(el.lower())
else:
print(el)
14. 把班级学⽣数学考试成绩录⼊到⼀个列表中: 并求平均值. 要求: 录⼊的时候
要带着⼈名录⼊, 例如: 张三_44
lis=[]
while 1:
content=input("请输入信息:")
if content.upper() == "Q":
break
lis.append(content)
#总分
scot=0
for i in lis:
scot += int(i.split("_")[1])
print(scot)
#平均分
print(scot/len(lis))
15. 敲七游戏. 从0开始数数. 遇到7或者7的倍数要在桌上敲⼀下. 编程来完成敲 七
lis=[]
n=int(input("请输入一个数:"))
for i in range(0,n):
if i%7==0 or "" in str(i):
lis.append("咣")
else:
lis.append(i)
print(lis)
16. (升级题) 编写程序. 完成⼼动⼥⽣的筛选. (升级题)
          ⾸先. 程序会提示⽤户录⼊10位⼼仪⼥⽣的姓名. 然后把10位⼥⽣的名
字和序号展示出来. 由⽤户选择⼼动⼥⽣. 此时⽤户可以选择3个⼼动⼥⽣. 把⽤
户选中的三个⼼动⼥⽣的名字打印出来. 供⽤户继续选择. 这⼀次选择. 只能选
择⼀名⼥⽣. 然后输出⽤户的⼼动⼥⽣是xxx
运⾏效果:
lis=[]
i=0
while i< 10 :
nh="请输入心仪的女生"+"(你还可以输入" + str(10-i) +"个)"
xd = input(nh+":")
i+=1
lis.append(xd)
index=0
for j in lis :
index+=1
print("编号:"+ str(index) + ", " +"名字:" + j )
lst=[]
count=1
while count<=3 :
hh="请输入第"+ str(count) + "个美眉的编号:"
gxh= int(input(hh + ":"))
count +=1
lst.append(lis[gxh-1])
index2 = 0
for h in lst:
index2 +=1
print("编号:" + str(index2) + ", " + "名字:" + h)
love =int(input("请输入你喜欢的编号:"))
print("程序选出来了你喜欢的是" + lst[love-1])
												

python中关于列表和元祖的基础知识的更多相关文章

  1. Python中的列表、元祖、字典

    一.列表 一组有序项目的集合.可变的数据类型[可进行增删改查] 列表是以方括号"[]"包围的数据集合,不同成员以","分隔. 列表中能够包括不论什么数据类型,也 ...

  2. python 字符串、列表和元祖之间的切换

    >>> s=['http','://','www','baidu','.com'] >>> url=''.join(s) >>> url 'htt ...

  3. python 字符串,数组,元祖操作基础巩固。

    由于上个星期有点忙,没时间来抽空记一些有用的东西.丢了比较久的python很多忘记的小操作我也会重新捡起来 以前最容易搞混的 str.split() #操作会生成一个数组对象.example:'lap ...

  4. 写出Python中列表、元祖、字典、字符串的至少5种以上的方法

    1.列表 常用方法 作用 参数 append(data) 在尾部添加数据 data-加入到列表中的数据 insert(idx,data) 在指定位置添加数据 idx-索引    data-数据 ext ...

  5. Python 中列表、元祖、字典

    1.元祖: 对象有序排列,通过索引读取读取, 对象不可变,可以是数字.字符串.列表.字典.其他元祖 2.列表: 对象有序排列,通过索引读取读取, 对象是可变的,可以是数字.字符串.元祖.其他列表.字典 ...

  6. 干货!Python中字符串、列表、元祖、字典,集合之间的转换

    一.字符串的转化 1.字符串转换成列表 字符串转换成list 的时候,str可以作为迭代对象,直接放入:也可以使用split对字符串进行切割.然后返回list s = '1a1b1c' print(l ...

  7. Python基础-列表、元祖、字典、字符串

    列表和分组 序列概览: 数据结构是通过某种方式组织在一起的数据元素的集合.这些元素可以是数字.字符,甚至可以是其他数据结构. 在python中,最基本的数据结构是序列(sequence). 序列中的每 ...

  8. python基础--列表、元祖、字典、集合

    列表(List) 1.列表特点 列表是可变的!! list 是一种有序的序列,可以添加.删除其中的元素,并且可以通过下标(索引)访问 数据 2.简单的常用操作 A.通过下表访问元素 print(lis ...

  9. Python eval() 的使用:将字符串转换为列表,元祖,字典

    eval() 函数用来执行一个字符串表达式,并返回表达式的值. 语法 以下是 eval() 方法的语法: eval(expression[, globals[, locals]]) 参数 expres ...

随机推荐

  1. Com类型

    /* VARIANT STRUCTURE * * VARTYPE vt; * WORD wReserved1; * WORD wReserved2; * WORD wReserved3; * unio ...

  2. vue 生命周期钩子的理解 watch computed

    一  理解vue的生命周期,首先需要注意几个关键字 1. el :选择器 2. $el:对应选择器的template模板(html代码) 3. render:也是vue实例中的一项,其参数更接近vue ...

  3. 怎样从外网访问内网MySQL数据库?

    本地安装了一个MySQL数据库,只能在局域网内访问到,怎样从外网也能访问到本地的MySQL数据库呢?本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动MySQL数据库 默认安装的MySQL ...

  4. right spindle supply short to gnd

    hardware guy found that the R1004 lead to this error, but this error should not be checked, because ...

  5. js动态添加和删除table的行例子

    <table id="table_report" class="table table-striped table-bordered table-hover&quo ...

  6. java.lang.Object.wait(Native Method)

    java.lang.Object.wait(Native Method) java.lang.Object.wait(Object.java:502) java.util.TimerThread.ma ...

  7. JavaScript document open() 方法:打开一个新文档

    <html> <head> <script type="text/javascript"> function createNewDoc() { ...

  8. PHP优化加速之Opcache使用总结

    PHP优化加速之Opcache使用总结: Opcache是一种通过将解析的PHP脚本预编译的字节码存放在共享内存中来避免每次加载和解析PHP脚本的开销,解析器可以直接从共享内存读取已经缓存的字节码,从 ...

  9. [c/c++] programming之路(5)、吓人小程序、变量、进制等

    一.设计一个吓人的东西 首先创建MFC项目(勾选“基于对话框”后点击完成即可) 添加三个按钮 双击按钮进入响应代码段 void CMFCWindowsDlg::OnBnClickedButton1() ...

  10. Codeforces Round #427 (Div. 2) Problem C Star sky (Codeforces 835C) - 前缀和

    The Cartesian coordinate system is set in the sky. There you can see n stars, the i-th has coordinat ...