老吴Python宝典之——Python列表&元组(第四章 )

欢迎您进入老吴的博客,如有联系请加QQ群:1055524279

4.1  python列表的概述

列表是python的基础数据类型之一 ,其他编程语言也有类似的数据类型.比如JS中的数 组, java中的数组等等. 它是以[ ]括起来, 每个元素用' , '隔开而且可以存放各种数据类型: 列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类

列表相比于字符串,不仅可以储存不同的数据类型,而且可以储存大量数据,32位python的限制是 536870912 个元素,64位python的限制是 1152921504606846975 个元素。而且列表是有序的,有索引值,可切片,方便取值。

1. 字符串只能存储少量的数据,对于大量的数据用字符串操作不方便也不易存储。

2. 字符串存储的数据类型太单一,只能是字符串类型

如果存储数据类型是相同的用列表;例如存储100个人的名字 或者存储100个人的年龄。

很多个信息描述一个人需要用字典。字典用来描述一个信息的时候

#作用:多个装备,多个爱好,多门课程,多个女朋友等

#定义:[ ]内可以有多个任意类型的值,逗号分隔

#定义列表

name = [ ]   #name等于中括号就是定义列表

列表用例存储数据的

4.1.1  python列表的定义

 

4.2  Python 列表的添加

 

# append 追加,给列表的最后面追加一个元素
l = [1, 2, 'a']
l.append(666)
print(l) # [1, 2, 'a', 666]

# insert  插入在列表的任意位置插入元素
l = [1, 2, 'a']
l.insert(1,'老吴')
print(l) # [1, '老吴', 2, 'a']

# extend  迭代着追加,在列表的最后面迭代着追加一组数据
l = [1, 2, 'a']
l.extend('柏晟')
print(l)

4.3  列表的删除

 

# pop  通过索引删除列表中对应的元素,该方法有返回值,返回值为删除的元素
l = ['老吴', 'test', 'wusir', '柏晟']
ret = l.pop(1)
print(ret,l) # test ['老吴', 'wusir', '柏晟']

# remove  通过元素删除列表中该元素
l = ['老吴', 'test', 'wusir', '柏晟']
l.remove('wusir')
print(l) # ['老吴', 'test', '柏晟']

# clear 清空列表
l = ['老吴', 'test', 'wusir', '柏晟']
l.clear()
print(l) # []

# del
#按照索引删除该元素
l = ['老吴', 'test', 'wusir', '柏晟']
del l[2]
print(l) # ['老吴', 'test', '柏晟']

# 切片删除该元素
l = ['老吴', 'test', 'wusir', '柏晟']
del l[1:]
print(l) # ['老吴']

# 切片(步长)删除该元素
l = ['老吴', 'test', 'wusir', '柏晟']
del l[::2]
print(l) # ['test', '柏晟']

4.4  Python列表的修改

 

# 列表的修改:
l = ['老吴', 'test', 'wusir', '柏晟']
l[0] = '男神'
print(l) # ['男神', 'test', 'wusir', '柏晟']

# 按照切片改值(迭代着增加)
l = ['老吴', 'test', 'wusir', '柏晟']
l[1:3] = 'abc'
print(l) # ['老吴', 'a', 'b', 'c', '柏晟']

# 按照切片(步长)改值(必须一一对应)
l = ['老吴', 'test', 'wusir', '柏晟']
l[::2] = '对应'
print(l) # ['对', 'test', '应', '柏晟']

4.5  Python列表的查找

 

代码:

list_a = ['tom', 'jerry', 'rose']
print('tom' in list_a)

if 'tom' in list_a:
   list_a.remove('tom')
print(list_a)

4.5.1  列表查找的第二种方法:

 

list_a = ['Mark', 'test', 'hello']
a = list_a.index('test')
print('第一次出现的索引:',a)

4.6 列表的嵌套

对于列表形如 list_1 = [[1, 2], [3, 4, 5], [6, 7], [8], [9]]

转化成列表 list_2 = [1, 2, 3, 4, 5, 6, 7, 8, 9] 的问题。

 

代码:

list_2 = []
list_1 = [[1, 2], [3, 4, 5], [6, 7]]
for i in list_1:
    list_2+=i
print(list_2)

# 使用sum
list_1 = [[1, 2], [3, 4, 5], [6, 7]]
list_2 = sum(list_1, [])
print(list_2)

4.7  列表的排序

Python中拥有内置函数实现排序,可以直接调用它们实现排序功能

Python 列表有一个内置的 list.sort() 方法可以直接修改列表。还有一个 sorted() 内置函数,它会从一个可迭代对象构建一个新的排序列表。

 

# 列表的排序

list2 = [2,3,8,6,4,3,1,2]  # sort 默认从小到大排序

list2.sort()

print(list2)

#

list=[1,2,4,5,3]

print(sorted(list))    #sorted()函数排序

list2.sort(reverse=True) # 从大到小进行排序

print(list2)

list2.reverse()        # 倒序

print(list2)

sort ()sorted()区别:

sort() 是应用在 list 上的方法,sorted() 可以对所有可迭代的对象进行排序操作。

list 的 sort() 方法返回的是对已经存在的列表进行操作,无返回值,而内建函数 sorted() 方法返回的是一个新的 list,而不是在原来的基础上进行的操作

4.8  python元组

4.8.1 元组的概述

对于容器型数据类型list,无论谁都可以对其增删改查,那么有一些重要的数据放在list中是不安全的,所以需要一种容器类的数据类型存放重要的数据,创建之初只能查看而不能增删改,这种数据类型就是元组。

元组:俗称不可变的列表,又被成为只读列表,元祖也是python的基本数据类型之一,用小括号括起来,里面可以放任何数据类型的数据,查询可以,循环也可以,切片也可以.但就是不能改.

元组特点:是不可变

定义:与列表类型比,只不过[  ]换成() age=(11,22,33,44,55)

作用:存多个值,对比列表来说,元组不可变(是可以当做字典的key的)

4.8.2  元组的索引切片

 

tu1 = ('a', 'b', '柏晟', 3, 666)
print(tu1[0])  # 'a'
print(tu1[-1])  # 666
print(tu1[1:3])  # ('b', '柏晟')
print(tu1[:-1])  # ('a', 'b', '柏晟', 3)
print(tu1[::2])  # ('a', '柏晟', 666)
print(tu1[::-1])  # (666, 3, '柏晟', 'b', 'a')

4.8.3  访问元组

 

修改元组

说明:Python中不允许修改元组的数据,包括不能删除其中的元素。

 

元组是不可变的,也就是说,元组中的元素在被赋值后不能改变。但是,如果元素本身是一个可变数据类型的列表,那么其嵌套项可以被改变。

 

4.8.4  多维元祖访问的示例

 

参考代码:

a = (("刘备","吕布"),("老王","test"),("wusir","运维"))
print(a[0])
print(a[0][1])
print(a[1][1])

元组的索引和字符串以及列表完全一致。

4.8.5  python元组的方法

元组的查找

index

从左往右返回第一个遇到的指定元素的索引,如果没有,报错

count

返回元组当中指定元素的个数

 

 

元组的查找:

 

lis = ("wusir","test","python","baisheng","java")
print('test' in lis)

4.8.6  range函数的使用:

 

# range()h函数一般和for循环配合使用
print(range(1,10))
for i in range(1,10):
    print(i)
for i in range(1,10,2):
    print(i)
for i in range(10, 1, -2):
    print(i)

range函数扩展遍历列表里面的元素

 

# 遍历lis 每一个元素的索引
lis = ["wusir","test","python","baisheng","java"]
# 方法一 ,列表不能有重复数据
for i in lis:
    print(lis.index(i))
# 方法二 推荐使用
for i in range(0,len(lis)): # 起始位置是0开始,结束位置用len()函数表示
    print(i)

猜你喜欢

转载自www.cnblogs.com/wusirtpc/p/12315587.html