列表

一、内容概述

  1、list增删改查 (列表可以装大量的数据,不限制数据类型,列表是有序的(按保存顺序),表示方式:[ ],方括号中的每一项都用逗号隔开,列表和字符串一样,也有索引和切片)

  常用功能:

    增:append()、insert()、extend()

    删:remove()、pop()、del list[]、clear()

    改:list[ 下标 ] = “ xxx ”  #根据索引修改

    查:for i in list: print(i)  #根据for循环遍历查找

  常用语法:

    len() #计算长度

    count() #计算次数

    sort() #排序  ----> 降序:sort((reverse=True)

    reverse() #反转

  2、list嵌套

    降维操作

  3、tuple元组

    不可变的列表,只读列表,只有索引和切片,不变的是它内部的元素,如果子元素是列表,列表中的元素可变

     元组中如果只有⼀个元素. ⼀定要添加⼀个逗号, 否则就不是元组

    元组也有count(), index(), len()等⽅方法.

  4、range()

    有一个参数:结束位置

    有两个参数:起始位置:结束位置

    有三个参数:起始位置:结束位置:步长

 

二、具体实例:

  1、列表的索引和切片

    (1)索引:

      

lis = ["张三""李四","王五","赵六"]
prin(lis[0])  #获取第一个元素
prin(lis[1])
prin(lis[2])

    (2)切片

lis = ["花千骨","白子画","杀阡陌","糖宝","儒尊","紫渊上仙"]
print(lis[0:3])
print(lis[:3])
print(lis[1::2]) #从1取到末尾,每个一个取一个
print(lis[2::-1]) #倒着取值
print(lis[-1:-3:-3])  #倒着取值带步长

  2、列表的增删改

    (1)增:注意, list和str是不⼀样的. lst可以发⽣改变. 所以直接就在原来的对象上进行了操 作 append() insert() extend()

1. append()  #默认在末尾添加
lis = ["花千骨","白子画","杀阡陌","糖宝","儒尊","紫渊上仙"]
print(lis)
lis.append("檀凡上仙")

例:输入信息
lst = []
while True:
  count = input("请输入信息,结束请输入Q").strip()
  if count.upper() == "Q"
    brek
  else:
    lst.append(count)
print(lst)

2. insert()#根据索引添加
lis = ["花千骨","白子画","杀阡陌","糖宝","儒尊","紫渊上仙"]
lis.insert(1,"东方彧卿") #在1的位置添加

3.迭代添加
lis = ["花千骨","白子画","杀阡陌","糖宝","儒尊","紫渊上仙"]
lis.extend("东方彧卿","世尊","无垢上仙")

     (2)、删:pop()、remove()、del 、clear()

lis = ["花千骨","白子画","杀阡陌","糖宝","儒尊","紫渊上仙"]
print(lis)

1.pop()  #根据下标删除,会返回删除的值,(默认删除最后一个)
delt = lis.pop()   #默认删除最后一个
print("被删除的元素",delt)
print(dis)

el = lis.pop(3) #根据下标删除
print(el)
print(lis)

2.remove() #删除指定元素,如果不存在该元素会提示报错
lis.remove("儒尊")
print()

3.clear()  #清空列表
lis.clear()
print(lis)

4.del list[:]  #切片删除
del lis[2:4]
print(lis)

    3、改:索引切片修改

lis = ["花千骨","白子画","杀阡陌","糖宝","儒尊","紫渊上仙"]
lis[4] = "世尊"   #根据索引修改
print(lis)

lis[1:4:2] = ["洪荒之力","生死劫"]  #有步长注意元素个数
print(lis)

lis[1:4] = "断念剑"  #没有步长不用注意元素个数
print(lis)

    4、查:for循环查询(列表是一个可迭代对象)

lis = ["花千骨","白子画","杀阡陌","糖宝","儒尊","紫渊上仙"]
for el in lis:
    print(el)

    5、常用操作

 lis = ["花千骨","白子画","杀阡陌","糖宝","儒尊","紫渊上仙"]

1.count() #查询元素出现的次数
c = lis.count("花千骨")
print(c)

2.sort()  #排序
lis.sort()  #默认升序
print(lis)
-------------------------
降序:
lis.sort(reverse=True)
print(lis)

3.reverse   #反转
lis.reverse()
print(lis)

4.len()  #列表长度
l = lis.len(lis)
print(l)

    6、列表的嵌套 (降维操作)

lis = ["花千骨","白子画","杀阡陌","糖宝","儒尊","紫渊上仙","alex",["马虎疼",["可口可乐"],"王健林"]]
#找到白子画
print(lis[1])
#找到杀阡陌和糖宝
print(lis[2:4])
#找到花千骨的千字
print(lis[0][1])
#找到alex,将首字母大写,再放回去
s = lis[-1]
s1 = s.capitalize()
lis[-1] = s1
print(lis)
-----------------------------
lis[-1] = lis[-1].capitalize()
print(lis)
#把杀阡陌改成杀阡刀
lis[2] = lis[2].replace("陌","刀")
print(lis)
#把马虎疼改成马化腾
lis[-1][0] = lis[-1][0].replace("虎","化")
print(lis)
#在可口可乐后面加一个雪碧
lis[-1][1] = lis[-1][1].append("雪碧")
print(lis)

三、元组

   1、元组和元组的嵌套 (元组:不可变的列表,只读,用小括号括起来,里面可以放任何类型的数据,可以查询、循环、切片,就是不能改。)

 

tu = ("花千骨","白子画","杀阡陌","糖宝","儒尊","紫渊上仙")
print(tu)

print(tu[0])
print(tu[2])
print(tu[2:5])  #切片之后还是元组

#for循环遍历元组
for el in tu:
    print(el)

#尝试修改元组
tu[1] = "师尊"   #报错:TypeError: 'tuple' object does not support item assignment

tu = (1,"哈哈",[],"呵呵")
tu[2] = ["嘻嘻"]  #这样也不能修改,只能使用添加的方法
tu[2].append("张三")   #找到元组的位置,在对列表进行添加,能达到修改的效果
print(tu)
$:注意,这里的元组的不可变是指的子元素不可变。而子元素内部的子元素是可以改变的,这取决于子元素是否是可变对象

tu = (1,)
print(type(tu))  #元组中如果只有一个元素,一定要添加一个逗号,否则就不是元组


#元组也有count()、index()、len()等方法

四、range()   #range可以帮我们获取到一组数据。通过for循环能够获取到这些数据

for num in range(10):
    print(num)

for num in range(1,10,2):
    print(num)

for num in range(10,1,-2):  #反着来,和切片一样
    print(num)

 

posted @ 2018-07-07 11:59  LW-5208  阅读(136)  评论(0)    收藏  举报