python3 基础数据类型之列表及其操作方法

Posted on 2019-06-19 17:44  麻世骞  阅读(233)  评论(0编辑  收藏  举报

1、列表的概念

  list是一种用有序可重复的集合,列表中元素的类型可以 不相同,它支持数字,字符串甚至可以包含列表,列表是写在方括号 [] 之间、用逗号 , 分隔开的元素列表,可以随时添加和删除其中的元素。

2、访问列表中的值

  我们可以使用 下标索引 来访问列表中的值,索引值以 0 为开始值,-1 为从末尾的开始位置

list = [1,2,3,4,5,6,7,8]
print(list[0])
--------------------------------------------
1

print(list[-1])
--------------------------------------------
8

print(list[3])
--------------------------------------------
4

print([-2])
--------------------------------------------
7

 

3、更新列表

  可以对列表的数据项进行 修改或更新 ,也可以使用 append() 方法来 添加 列表项,用 insert()方法来插入。

list = [1, 2, 3, 4, 5, 6, 7, 8]
list[2] = 100                                      #更新
print('更新后的第三个元素为:',list[2])
-----------------------------------------------------
更新后的第三个元素为:100


list.append(9)                                    #追加
print(list)
-----------------------------------------------------
[1, 2, 100, 4, 5, 6, 7, 8, 9]



list.insert(3,'从这里插入')                         #插入
print(list)
-----------------------------------------------------
[1,2,100,'从这里插入',4,5,6,7,8,9]

 

4、列表的删除

  列表的删除语句有del语句、remove语句、pop语句和clear语句。

list = [1,2,3,4,5,6,7,8]
del list[2]                        #按照索引删除
print(list)
--------------------------------------------
[1,2,4,5,6,7,8]


list.remove('8')
print(list)                        #按照元素名删除
--------------------------------------------
[1,2,4,5,6,7]


list.pop
print(list)                        #删除最后一个元素
--------------------------------------------
[1,2,4,5,6]                                


list.clear
print(list)                        #清空列表
--------------------------------------------
[]

 

5、列表脚本操作符

 列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。如下所示: 

# 长度
print(len([1, 2, 3]))
------------------------------------
3

# 组合
print([1, 2, 3] + [4, 5, 6])
------------------------------------
[1,2,3,4,5,6]

# 重复
print([1, 2, 3] * 2)
------------------------------------
[1,2,3,1,2,3]

# 判断
print(2 in [1, 2, 3])
------------------------------------
True

# 迭代
for x in [1, 2, 3]:
    print(x, end="")
------------------------------------
123

 

6、切片

  首先先讲下 切片的公式。 模式[start : end : step]
  1.start 是切片的起始位置不填默认为0
  2.end 是切片的截至位置不填默认为列表的长度
  3.step是切片的跨度,也就是切片跳跃的长度,官方说法是步长,如果不指定值就是默认是1

  切片取值:

alist=[1,2,3,4,5,6,7,8,9]
print(alist[::])    #打印全部
print(alist[:])    #打印全部
print(alist[3::2])   #起始位置为3,截至位置为默认列表长度,步长为2,
                            #打印出来我猜不错的话应该是取的奇数位置。
print(alist[1:4])  #取列表位置 1 到4 (记住列表位置是从0开始)
print(alist[::-1]) # 这个要注意了, 这个比较高级 是对列表进行反转,简单吧
print(alist[1:100])  # 如果 截至位置大于列表长度取列表的长度。
print(alist[100:])   # 如果 起始位置大于列表长度取值为空
---------------------------------------------------------------------
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[4, 6, 8] [2, 3, 4]
[9, 8, 7, 6, 5, 4, 3, 2, 1]
[2, 3, 4, 5, 6, 7, 8, 9]
[]

  **注意:以上所有操作都不会改变原列表,会重新创建一个列表。

  切片赋值:

alist=[1,2,3,4,5,6,7,8,9]

alist[len(alist):]=[10]                     #在尾部增加列表

alist[:0]=[0]                                  #在开始位置前增加列表

alist[2:2]=[100]                            #在3位置插入列表     

alist[3:4]                                      #打印的结果为 [4]  

alist[3,3]=[]

alist[:8]=[12]                               #初始位置到7 都变成【12】
print(alist)
alist[2:]=[13]                               #从第三个位置到结尾 变成【13】

alist[::2]=[0]*5                            #隔一个进行修改,
print(alist)
-------------------------------------------------------------------
[0, 2, 0, 4, 0, 6, 0, 8, 0]                #注意要修改的数量要和右边的等号相等 如果不等就报错 

alist[::2]=[0]*4
print(alist)
-------------------------------------------------------------------
#ValueError: attempt to assign sequence of size 4 to extended slice of size 5

alist[:3]=[]                                 #删除前三个元素

del alist[:3]                                 #用del 删除前三个

del alist[::2]
print(alist)    #奇数位置都要删除
-------------------------------------------------
[2, 4, 6, 8]