PHP前端开发

Python Day-Tuples,集合:方法、示例、任务

百变鹏仔 5天前 #Python
文章标签 示例

元组:

-->元组项是有序的,不可变的(不可更改),并且允许重复值。
-->元组用圆括号()书写。
-->tuples 还允许索引、切片。
-->元组与列表类似,可以执行加法、乘法,很少有相同的功能也可以用于元组。

示例:

t = (10,20,30)print('output:1',t)print('output:2',type(t))print('output:3',end=' ')for num in t:    print(num, end = ' ')total = 0print('output:4',end=' ')for num in t:    total+=numprint(total)t[0] = 100

输出:

output:1 (10, 20, 30)output:2 <class 'tuple'>output:3 10 20 30 output:4 60'tuple' object does not support item assignment

-->对于最后一个输出,它显示错误,因为元组是不可变的项目分配无法完成。

元组打包和解包:

tuple packing and unpacking are features that allow you to group values into a tuple and extract them back into individual variables.

示例:

#tuple packingt = 10,20,30print(t)#tuple unpackingno1, no2, no3 = tprint(no1)print(no2)print(no3)

输出:

(10, 20, 30)102030

相同的函数可以用作列表函数。

示例:

t1 = 10,20,30,40,50,60,10print(t1.count(10))print(t1.index(20))print(sorted(t1))print(sorted(t1,reverse=false))

输出:

21[10, 10, 20, 30, 40, 50, 60][10, 10, 20, 30, 40, 50, 60]

1) 找到
a)第二个列表
b) 列出总计
c) 仅打印每个列表中的第二个元素。
数据 = ([10,20,30],[40,50,60],[70,80,90])

data = ([10,20,30],[40,50,60],[70,80,90])#second listprint(data[1])#list wise totalfor inner in data:    total = 0    for num,index in enumerate(inner):        total+=index    print(total,end=' ')#print only second element from each list.print()i=0while i<len(data):    print(data[i][1],end=' ')    i+=1

输出:

[40, 50, 60]60,150,240,20 50 80

eval() 函数:

立即学习“Python免费学习笔记(深入)”;

此函数用于评估通过 input() 函数提供的元素类型是列表还是元组。

t = eval(input("enter tuple elements: "))print(type(t))print(t)

输出:

enter tuple elements: 10,20,30<class 'tuple'>(10, 20, 30)

next() 函数:
next() 函数返回迭代器中的下一项。

t = (no for no in range(1,11))print(next(t))print(next(t))print(next(t))print(next(t))

输出:

1234

它迭代输出中的下一个值。

“is”和“==”的区别:(面试题)

--> '==' 被称为相等运算符。
--> “is”被称为恒等运算符。

-->== 检查值。
-->is 检查内存。

--> == 运算符帮助我们比较对象的相等性。
--> is 运算符帮助我们检查不同的变量是否指向内存中的相似对象。

示例:
列表:

l1 = [10,20,30]l2 = l1print(id(l1))print(id(l2))print(l1 == l2)print(l1 is l2)l2 = list(l1)print(id(l2))print(l1 == l2)print(l1 is l2)

输出:

124653538036544124653538036544truetrue124653536481408truefalse

对于元组:

l1 = (10,20,30)l2 = l1print(id(l1))print(id(l2))print(l1 == l2)print(l1 is l2)l2 = tuple(l1)print(id(l2))print(l1 == l2)print(l1 is l2)

输出:

130906053714624130906053714624truetrue130906053714624truetrue

元组与列表:

-->元组是不可变对象,列表是可变对象。
-->元组使用的内存更少,并且访问速度比列表更快。
-->由于元组是不可变的,因此大小将小于列表。

示例:

import sysl = [10,20,30,40]t = (10,20,30,40)print(sys.getsizeof(l))print(sys.getsizeof(t))

输出:

8872

设置:
-->sets 用于在单个变量中存储多个项目。
-->集合是无序、不可变(不可更改)、无索引的集合。
-->忽略重复项。

设置方法:
1)union():(符号-|)返回包含集合并集的集合。

2)intersection():(symbol-&)返回一个集合,即其他两个集合的交集。

3)difference():(符号:'-')返回包含两个或多个集合之间差异的集合。

4)symmetry_difference():(symbol-^)返回具有两个集合的对称差的集合。

示例:1

s1 = {10,20,30,40}s2 = {30,40,50,60}print(s1.union(s2))print(s1 | s2)print(s1.intersection(s2))print(s1 & s2)print(s1.difference(s2))print(s1 - s2)print(s1.symmetric_difference(s2))print(s1 ^ s2)

输出:

{40, 10, 50, 20, 60, 30}{40, 10, 50, 20, 60, 30}{40, 30}{40, 30}{10, 20}{10, 20}{10, 50, 20, 60}{10, 50, 20, 60}

示例:2

s1 = {10,20}s2 = {20,30}s3 = {30,40}print(s1.union(s2,s3))result = s1 | s2 | s3print(result)

输出:

{20, 40, 10, 30}{20, 40, 10, 30}

注意:我们可以使用符号或方法名称。

丢弃():

--> 仅当该元素存在于集合中时才从集合中删除该元素。
--> 如果集合中不存在该元素,则不会引发错误或异常,并打印原始集合。

discard() 和 remove() 之间的区别
-->remove():仅当该元素存在于集合中时才从集合中删除该元素,就像discard()方法一样,但如果该元素不存在于集合中,则会引发错误或异常。
-->in discard() 不会引发错误或异常,并打印原始集。
参考-https://www.geeksforgeeks.org/python-remove-discard-sets/

示例:

s = {"abcd", 1.2, true, 500,500}s.remove(10)print(s)s.discard(10)print(s)

输出:

keyerror: 10{'abcd', 1.2, 500, true}

任务:
match1 = {"sanju", "virat", "ashwin", "rohit"}

match2 = {"dhoni", "virat", "bumrah", "siraj"}
找到以下内容:

a) 匹配 1、匹配 2
b)参加了第一场比赛,但没有参加第二场比赛
c)参加了第 2 场比赛,但未参加第 1 场比赛
d)只参加了一场比赛

match1 = {"sanju", "virat", "ashwin", "rohit"}match2 = {"dhoni", "virat", "bumrah", "siraj"}#aprint(match1 & match2)#bprint(match1 - match2)#cprint(match2 - match1)#dprint(match1 ^ match2)

输出:

{'virat'}{'sanju', 'rohit', 'ashwin'}{'dhoni', 'siraj', 'bumrah'}{'sanju', 'bumrah', 'rohit', 'siraj', 'ashwin', 'dhoni'}