基本数据类型-----列表

 一、列表(List)

     序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。

     Python有6个序列的内置类型,但最常见的是列表元组

     序列都可以进行的操作包括索引,切片,加,乘,检查成员。

     此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。

     列表中可以嵌套任何类型,中括号括起来,使用逗号分割每个元素,列表中的元素可以是 数字,字符串,列表,布尔值..所有的都能放进去

     创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:

# list  # 类,列表
# li = [1, 12, 9, "age", ["石振文", ["19", 10], "庞麦郎"], "alex", True]
# 通过list类创建的对象 li
  •  使用索引取值

print(li[3])
  • 切片,切片结果也是列表

print(li[3:-1])
  • for循环

for item in li:
    print(item)
  • while循环
li = [11,22,33,'lee',44,'age']
c = 0
while c < len(li):
    print(li[c])
    c = c + 1
  • 修改列表元素(通过索引)
li = [1, 12, 9, "age", ["石振文", ["19", 10], "庞麦郎"], "alex", True]
li[1] = 120
print(li)
li[1] = [11,22,33,44]
print(li)

输出:

  • 删除元素(通过索引)

del li[1]
print(li)
  • 修改元素(通过切片)
li[1:3] = [120,90]    ##修改li[1]=120   ,   li[2]=90
print(li)
  • 删除元素(通过切片)
del li[2:6]   ##删除元素li[2]、li[3]、li[4]、li[5]
print(li)
  • in 操作

li = [1, 12, 9, "age", ["石振文", ["19", 10], "庞麦郎"], "alex", True]
v1 = "石振文" in li
print(v1)
v2 = "age" in li
print(v2)

输出:

  • 取出列表中的元素
li = [1, 12, 9, "age", ["石振文", ["19", 10], "庞麦郎"], "alex", True]
v = li[4][1][0]
print(v)

输出:

  • 字符串类型转换为列表类型
s = "pouaskdfauspdfiajsdkfj"
new_li = list(s)
print(new_li)

输出:

  • 列表转换成字符串,需要自己写for循环一个一个处理: 既有数字又有字符串

错误方法:

li = [11,22,33,"123","alex"]
r = str(li)
print(r)
print(type(r))

输出:

正确方法:使用for循环

li = [11,22,33,"123","alex"]
s = ""
for i in li:
    s = s + str(i)
print(s)
print(type(s))

输出:

直接使用字符串join方法:列表中的元素只有字符串

li = ["123","alex"]
v = "".join(li)     ##jion方法也是通过循环实现的
print(v)

#le = [123,1]     ##jion只适用于字符串,列表中所有元素为数字时也不可以用jion转成字符串
#w = "".join(le)
#print(w)

输出:

 

 

 补充:字符串创建后,不可修改(以下的替换是生成了一个新的字符串aelex,占用了新的内存单元)

v = "alex"
v = v.replace('l','el')
print(v)

s = "alex"
s[0] = 1 ##不能使用这种方法修改字符串中的某个字符

输出:

 

二、python中列表的函数&方法

函数:

方法:


1.在原来值的最后追加
#li对象调用append方法
li = [11, 22, 33, 22, 44]
li.append(5)     ##这里不用使用新的变量来接收
li.append("alex")
li.append([1234,2323])
print(li)

输出:

 

2.清空列表
li = [11, 22, 33, 22, 44]
li.clear()
print(li)
输出:

 
3.拷贝(浅拷贝)
li = [11, 22, 33, 22, 44]
v = li.copy()
print(li)
print(v)

输出:

 

 4.计算元素出现的个数

li = [11, 22, 33, 22, 44]
v = li.count(22)
print(v)

输出:

 

5. 扩展原列表,参数:可迭代对象
li = [11, 22, 33, 22, 44]
li.extend([9898,"不得了"])       ##使用for循环将可迭代对象放入
print(li)

输出:

 

这个方法的实现过程同下面的代码等价:

li = [11, 22, 33, 22, 44]
for i in [9898,"不得了"]:
    li.append(i)
print(li)

输出:


append和extend的比较:
li = [11, 22, 33, 22, 44]
li.append([9898,"不得了"])
print(li)

输出:(这个使用的是append方法,直接将列表这个整体追加到最后)

 

6. 根据值获取当前值索引位置(左边优先)
li = [11, 22, 33, 22, 44]
v= li.index(22)
print(v)

输出:

  

7. 在指定索引位置插入元素
li = [11, 22, 33, 22, 44]
li.insert(0,99)    ##在li[0]处插入99
print(li)

输出:

 

8.删除某个值(1.指定索引;2. 默认最后一个),并获取删除的值
li = [11, 22, 33, 22, 44]
v = li.pop()     ##不添加参数默认删除最后一个元素
print(li)
print(v)
输出1:


li = [11, 22, 33, 22, 44]
v = li.pop(1)
print(li)
print(v)

输出2:

 
9. 删除列表中的指定值,左边优先
li = [11, 22, 33, 22, 44]
li.remove(22)
print(li)

输出:

 PS: pop remove del li[0]    del li[7:9]   clear    ##这些方法都可以实现元素的删除

10.将当前列表进行翻转
li = [11, 22, 33, 22, 44]
li.reverse()
print(li)

输出:

 

11.列表的排序
li = [11,44, 22, 33, 22]
li.sort()
li.sort(reverse=True)
print(li)

输出:

 

 
posted @ 2018-11-12 22:37  Forever_lee  阅读(377)  评论(0编辑  收藏  举报