资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

python中列表和元组的用法-创新互联

概念

成都网站制作、做网站的开发,更需要了解用户,从用户角度来建设网站,获得较好的用户体验。成都创新互联公司多年互联网经验,见的多,沟通容易、能帮助客户提出的运营建议。作为成都一家网络公司,打造的就是网站建设产品直销的概念。选择成都创新互联公司,不只是建站,我们把建站作为产品,不断的更新、完善,让每位来访用户感受到浩方产品的价值服务。

列表

列表是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。Python有6个序列的内置类型,但最常见的是列表和元组。序列都可以进行的操作包括索引,切片,加,乘,检查成员。此外,Python已经内置确定序列的长度以及确定大和最小的元素的方法。列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。列表的数据项不需要具有相同的类型创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。

元组

Python的元组与列表类似,不同之处在于元组的元素不能修改。

元组使用小括号,列表使用方括号。

元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。

# 列表
# 赋值、删除列表元素、分片赋值

# 1. 列表元素的赋值
values = ["Bill", "Mary", "John"]
values[0] = "Mike"
values[1] = 10.4
values[-1] = "Joe"
# values[-5] = "abc"  # 抛出异常
print(values)  # ['Mike', 10.4, 'Joe']

# 删除列表中的元素
numbers = [1,2,3,4,5,6,7,8]
del numbers[3]
print(len(numbers))  # 7 
print(numbers)    # [1, 2, 3, 5, 6, 7, 8]

# 分片赋值

names = ["Bill", "Joe", "李宁","马云"]
print(names[3:])  # ['马云']
names[3:] = ["a","b","c"]
print(len(names)) # 6
print(names)    # ['Bill', 'Joe', '李宁', 'a', 'b', 'c']

name = list("John")  # 将一个字符串转化为一个列表 
print(name)      #['J', 'o', 'h', 'n']
name[2:] = list("e") 
print(name)      ## ['J', 'o', 'e']
print(numbers)   # [1, 2, 3, 5, 6, 7, 8]

# 删除 和del 函数差不多  但是del只能删除一个  
numbers[3:6] = []
print(numbers)   # [1, 2, 3, 8]

--------------------
列表与元组的加法 乘法
data1 = [1,2,3,4]
data2 = [2,3,4,5,"hello"]

data3 = data1 + data2
print(data3)           # [1, 2, 3, 4, 2, 3, 4, 5, 'hello']

num1 = (1,2,3,4)
num2 = (3,4,'ff')

num3 = num1 + num2

print(num3)           # (1, 2, 3, 4, 3, 4, 'ff')

如何把一个元组 强制的转化为一个列表呢?
num1 = (1,2,3,4)
print(list(num1))    # [1, 2, 3, 4] 

如何把一个列表 强制转化为一个元组呢?
data1 = [1,2,3,4]
print(tuple(data1))   # (1, 2, 3, 4) 

列表与元组的乘法
a1 = [1,2,3,4]
print(a1 * 2)    # [1, 2, 3, 4, 1, 2, 3, 4]

b1 = (2,3,4,5)
print(b1 * 3)   # (2, 3, 4, 5, 2, 3, 4, 5, 2, 3, 4, 5)

字符串乘法: 
print('a' * 10)     # aaaaaaaaaa
print('a,' * 10)    # a,a,a,a,a,a,a,a,a,a,

data1 = [1,2,3,4]
num2 = (3,4,'ff')
print(data1 + list(num2) * 2)  # [1, 2, 3, 4, 3, 4, 'ff', 3, 4, 'ff']   先做乘法 再做加法 

from sqlalchemy.sql.expression import false
print("--------append方法---------")    # append:在列表最后(结尾)插入新的值,改变原来的列表
numbers = [1,2,3,4,5]
numbers.append(20)
print(numbers)            #[1, 2, 3, 4, 5, 20]
numbers.append("hello")         # 这个值可以为字符串
numbers.append([1,2,3])           # 也可以为另外一个列表 
print(numbers)            #[1, 2, 3, 4, 5, 20, 'hello', [1, 2, 3]]

print("---------clear方法---------")   # clear:用于清除列表的所有内容
names = ["Bill", "Mary"]
print(names)             #['Bill', 'Mary']
names.clear()
print(names)             #[]

print("----------copy方法----------")  # copy:用于复制一个列表
a = [1,2,3,4,5]
acopy = a
acopy1 = a[:]            #通过分片复制列表  acopy1 和 a 这2个列表的值是完全一样的 但是是2个不同的序列 
acopy2 = a.copy()
a[3] = "hello"            #这一步的目的是 要改变 3这个位置上的数
print(acopy)             #[1, 2, 3, 'hello', 5]
print(acopy1)            #[1, 2, 3, 4, 5]
print(acopy2)            #[1, 2, 3, 4, 5]
# 分片的方式或者是copy的方式  就是一个副本

print("----------count方法-----------")   # count:用于统计某个元素在列表中出现的次数
search = ["he", "new", "he", [1,2,3],"he", "world", "peter",[1,2,3]]
# 搜素“he”在search出现的次数
print(search.count("he"))      # 3

print(search.count([1,2,3]))     # 2

print(search.count(20))       # 如果没有找到指定的列表元素,返回0

print("------extend方法------")   # extend:用于在列表结尾插入另一个列表,也就是让两个列表首尾相接。

a = [1,2,3]
b = [4,5,6]
a.extend(b)
print(a)         # [1, 2, 3, 4, 5, 6]  a 这个列表改变了 
a[2] =123
print(a)         # [1, 2, 123, 4, 5, 6]
a = [1,2,3]
b = [4,5,6]

x = a
a = a + b
x[2] = 543
print(a)         # [1, 2, 3, 4, 5, 6]
print(x)         # [1, 2, 543] 

print("------index方法------")      # index:用于从列表中找出某个值第一次出现的索引位置
numbers = [5,3,6,8]
print(numbers.index(6))   # 2    6的位置上2 
# print(numbers.index(10))  # 如果指定的值在列表中不存在,会抛出异常

print("-------insert方法-------")    # insert:用于将值插入到列表中的指定位置      //这个方法可以取代append 因为可以在列表中的任意位置插入
numbers = [1,2,3,4,5]
#numbers.insert(3,"four")  # [1, 2, 3, 'four', 4, 5]
#print(numbers)

# 使用分片赋值完成同样的效果
numbers[3:3]="four"
print(numbers)        # [1, 2, 3, 'f', 'o', 'u', 'r', 4, 5] 
numbers[3:3] = ["four"]   # 开始索引和结束索引相等 不代表任何的元数 只是光标到达此位置 把这个位子代表4这个位子
print(numbers)        # [1, 2, 3, 'four', 4, 5]

print("-------pop方法-------")   #  pop:用于移除弹出列表中的元素(默认是最后一个元素),并返回该元素的值
numbers = [1,2,3]
print(numbers.pop())   # 默认不指定的话 就弹出 最后一个元数 3   结果为3
print(numbers.pop(1))   # 弹出第索引位子为1的元素  1表示 要弹出位子的索引   结果为2
print(numbers)      # 我们弹出了2次 就剩下一个1 了  结果为 [1]

print("---------remove方法---------")  # remove:用于移除列表中某个值的第一次匹配项 
words = ["he", "new", "he","yes"]
words.remove("he")
print(words)              #  结果为 ['new', 'he', 'yes'] 只移除第一个 出现的第一个 

print("------reverse方法--------")  # reverse:用于将列表中的元素反向存放
numbers = [1,2,3,4,5,6,7]
numbers.reverse()      # [7, 6, 5, 4, 3, 2, 1]   倒序  如果执行2次 那么就又正面返回了
print(numbers)

# 用分片的方法  第一个为开始索引  结束索引  步长 
print(numbers[len(numbers)::-1])   # 结果为 [7, 6, 5, 4, 3, 2, 1]  

print("--------sort方法-------")  # sort:用于对列表进行排序,调用该方法会改变原来的列表
numbers = [4,3,1,7,4,83,2,-3]
numbers.sort()    
print(numbers)      # [-3, 1, 2, 3, 4, 4, 7, 83]  排序 是一种升序的排序 改变了原来的列表 
# 要是不想改变原来的列表怎么办?
#方法1:使用分片或者copy的方法 将这个列表复制一份 然后在排序
numbers1 = [4,3,1,7,4,83,2,-3]
numbers2 = numbers[:]          # 分片复制方法 很简单 
numbers2.sort()
print(numbers1)     # [4, 3, 1, 7, 4, 83, 2, -3]
print(numbers2)     # [-3, 1, 2, 3, 4, 4, 7, 83]

numbers3 = numbers1.copy()   # 用copy的方法 复制
print(numbers3)         # [4, 3, 1, 7, 4, 83, 2, -3]

#方法2 我们不使用sort这个函数 因为他改变了原来的列表 我们使用 sorted函数 这个函数是返回排好序的列表  sorted函数 不改变原来列表的顺序
# 可以对任意的序列进行排列 ,可以对字符串进行排列
x = [5,4,7,2]
y = sorted(x)
print(x)        # [5, 4, 7, 2]
print(y)        #  [2, 4, 5, 7]

# 对字符串进行排序

print(sorted("www.baidu.com"))  # ['.', '.', 'a', 'b', 'c', 'd', 'i', 'm', 'o', 'u', 'w', 'w', 'w']
# 利用askm值进行排序  从低到高

# 我们可以通过关键字 让他降序排列
x = [4,6,2,8,44,56,22]
x.sort(reverse = True)  # 关键字 reverse 为true 为降序 ;如果 为flase为升序 默认为升序  # reverse:用于将列表中的元素反向存放
print(x)         # [56, 44, 22, 8, 6, 4, 2]
x.sort(reverse = False)
print(x)           # [2, 4, 6, 8, 22, 44, 56]
元组和列表的操作基本上上一样的,操作呢基本上是相同的,只有一点不一样,元组是只读的,元组是不可以修改的,列表中的所有修改操作,元组都不支持
# 元组
# 元组的定义是用 () 来定义的 

a = ()     # 这里就是定义了一个空的元组 
b = (1,2,3)
c = 1,2,3,4,5  # 这样的方式也是定义一个元组  基本上不用这个 
print(c)      # (1, 2, 3, 4, 5)

x = (30,)   # 这里一定要加 , 要不然就会当成一个值去处理了 
print(x)     # (30,)

print((12) * 12)  # 144   这里的12没有加, 就会当成一个值去处理 
print((12,) * 12)  # (12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12)    这里就是当成了一个元组去操作的 

aa = (1,2,4)
aa = aa.index(2)
print(aa)      # 结果为 1  index:用于从列表中找出某个值第一次出现的索引位置 

aa = (1,2,4,2,2)
# aa = aa.index(2)
aa = aa.count(2)
print(aa)     # 结果为3  count:用于统计某个元素在列表中出现的次数 
// 元组理论上只支持 index 和  count 方法  

names = ["Bill", "Mike", "John", "Mary"]

numbers = ["1234", "4321", "6789", "6543"]

print(numbers[names.index("Mike")])  #4321
print(names[numbers.index("6543")])   # Mary

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章名称:python中列表和元组的用法-创新互联
文章网址:http://www.cdkjz.cn/article/djeecg.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220