python中对列表,元组,集合,字典的分析理解

论坛 期权论坛 脚本     
匿名技术用户   2021-1-14 15:10   567   0

1.列表(List)

(1)列表一般是由 [ ] 表示,创建一个空列表,是任意对象的序列!

(2)在python中的列表跟清单的道理是一样的,特点就是:可重复,里面的类型可不同!类型不同是也是列表跟数组的最本质的区别!

(3)列表的方法:

list.append(x):把一个元素添加到链表的结尾,相当于a[len(a):] = [x] 。list.extend(L):将一个给定列表中的所有元素都添加到另一个列表中,相当于a[len(a):] = L 。list.insert(i,x):在指定位置插入一个元素。第一个参数是准备插入到其前面的那个元素的索引!

在列表中可动态的增加,删除,更新!

其他的经常使用的一些方法: count():统计列表中指定元素的个数! index():统计列表中指定值的位置 ! insert():将元素插入到列表指定的位置! extend():与append()一样,扩展列表(注意的是扩展的值添加到列表的末尾), 以及copy():复制列表

sort():对列表进行排序! reverse(); 反转列表中的元素

列表推导式为从序列中创建列表提供了一个简单的方法。 普通的应用程序通过将一些操作应用于序列的每个成员并通过返回的元素创建列表,或者通过满足特定条件的元素创建子序列。 例如, 假设我们创建一个 squares 列表, 可以像下面方式:

>>> squares = [ ]

>>> for x in range(10):

... squares.append(x**2)

...

>>> squares

[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

一个古希腊算法,筛选法,选取指定范围内所有的素数!

def prime_eratosthenes(n):
prime_list = [ ]
for i in range(2, n+1):
if i not in prime_list:
# print (i)
for j in range(i*i, n+1, i):
prime_list.append(j)
print(prime_list)

print(prime_eratosthenes(100))

2 .元组(Tuple):

元组和列表在结构上没有什么区别,唯一的差异在于元组是只读的,不能修改。元组用“()”表示,将一组值打包到一个对象中,称为元组。元组和列表的大部分操作相同。但是,列表是不固定的,可以随时插入,删除;而元组一旦确认就不能够再更改。所以,系统为了列表的灵活性,就需要牺牲掉一些内存;而元组就更为紧凑。(注意,元组在定义过程中,字符串必须用单引号‘ 扩起来。)

元组可以使用的方法:

len(): 获取的元组的长度, del(): 删除元组的元素,也同同样可以使用index(): 索引

下面这个例子: sort(0 以及lambda的函数的使用

price = [('item1', '15.20'), ('item2', '15.10'), ('item3', '24.5')]
print( sorted(price, key=lambda x: float(x[1]), reverse=False))

3.集合 (set):

与列表和元组不同,集合是无序的,也不能通过索引进行访问。此外,集合中的元素不能重复。set将列表转化(),一般可通过集合进行去重!基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和sysmmetric difference(对称差集)等数学运算!

集合也存在不可变形式,frozenset为固定集合

set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。

注意:想要创建空集合,你必须使用 set() 而不是 {} ,后者用于创建空字典

# 使用 set 函数创建集合

list1 = [6, 7, 7, 8, 8, 9]

set2 = set(list1)

set2.add(10) # 添加新元素

print (set2)

### 集合有并集,交集,求差操作

### a & b 并集:intersection() 方法返回一个新集合,包含在两个集合中同时出现的所有元素。

### a | b 交集:union() 方法返回一个新集合,包含在两个 集合中出现的元素。

### a - b 差集:difference() 方法返回的新集合中,包含所有在 集合A出现但未在集合B中的元素。

### a ^ b 对称差集:symmetric_difference() 方法返回一个新集合,包含所有只在其中一个集合中出现的元素

set.discard()
discard(ele)将一个元素从集合中移除。如果元素不存在于集合中,它不会抛出

4.字典(Dictionary):

字典定义了键和值之间一对一的关系,但它们是以无序的方式储存的。 Python 中的 dictionary 像 Java 中的 Hashtable 类的实例。定义 Dictionary 使用一对大(花)括号” { } “ Dictionary 不只是用于存储字符串。Dictionary 的值可以是任意数据类型,包括字符串、整数、对象,甚至其它的 dictionary。 在单个 dictionary 里,dictionary 的值并不需要全都是同一数据类型,可以根据需要混用和匹配。

字典中几个经常用的方法:

key() : 取出字典中所有的键 values(): 取出字典中的所有值 clear();清空字典

pop(): 删除指定的键值 copy():复制当前的字典 update(): 扩展字典 get(): 返回指定键值

popitem() :随机返回兵器删除字典中的一对键和值 items: 返回可遍历的(键, 值)元组数据

formkeys()::从序列键和值设置为·value来创建一个新的字典!

# 编写一个Python程序来创建和显示所有字母组合,从字典中的不同键中选择每个字母
# itertools模块包含创建有效迭代器的函数,可以用各种方式对数据进行循环操作,
# 此模块中的所有函数返回的迭代器都可以与for循环语句以及其他包含迭代器(如生成器和生成器表达式)的函数联合使用

# 创建一个迭代器, 生成项目的笛卡儿积的元组

import itertools
d = {'1':['a', 'b'], '2':['c', 'd']}
for combo in itertools.product(*[d[k] for k in sorted(d.keys())]):
print(''.join(combo))

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP