python性能优化摘录(二)

本文深入探讨了Python中集合和字典的解析方法,包括列表推导、集合解析和字典解析,并通过实例展示了如何高效地创建集合和字典表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

for i in range(1,10):
    print i,

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

a=(i for i in t)

print a

#输出结果:<generator object <genexpr> at 0x03ED8670>



s = (i for i in [1, 2, 3, 4, 5])
print s.next()
#输出结果:1

some_list=[1,2,3,4,5,2,3,7,8,4,9]
#列表集合
another_list=[x+1 for x in some_list]

print another_list


#创建集合和字典表


#set comprehensions   集合解析使用{}

ds={x for x in some_list if x%3==0}

print ds

#输出结果:set([9, 3])


#dictionary comprehension 字典集合
d={x: x%2==0 for x in range(1,11)}

print d

#在字典表的例子里,我们创建了一个key是不重复的110之间的整数,value是布尔型,用来指示key是否是偶数。

#结果:{1: False, 2: True, 3: False, 4: True, 5: False, 6: True, 7: False, 8: True, 9: False, 10: True}

#关于集合,对元素进行去重
my_set={1,2,1,2,3,4}

print my_set

#结果:set([1, 2, 3, 4])


#set()内置函数可以将列表、字符串、元组去重

print set(('a','b','d','a'))

#结果:set(['a', 'b', 'd'])


使用Dictionary comprehensions/Set comprehensions

大多数的Python程序员都知道且使用过列表推导(list comprehensions)。如果你对list comprehensions概念不是很熟悉——一个list comprehension就是一个更简短、简洁的创建一个list的方法。

>>> some_list = [1, 2, 3, 4, 5]

>>> another_list = [x + 1 for x in some_list]

>>> another_list

>>> [2, 3, 4, 5, 6]

自从python 3.1 (甚至是Python 2.7)起,我们可以用同样的语法来创建集合和字典表:

>>>#Set Comprehensions

>>> some_list = [1, 2, 3, 4, 5, 2, 5, 1, 4, 8]

>>> even_set = { x for x in some_list if x % 2 == 0 }

>>> even_set set([8, 2, 4])

>>> # Dict Comprehensions

>>> d = {x: x % 2 == 0 for x in range(1, 11)}

>>> d {1: False, 2: True, 3: False, 4: True, 5: False, 6: True, 7: False, 8: True, 9: False, 10: True}

在第一个例子里,我们以some_list为基础,创建了一个具有不重复元素的集合,而且集合里只包含偶数。而在字典表的例子里,我们创建了一个key是不重复的1到10之间的整数,value是布尔型,用来指示key是否是偶数。

这里另外一个值得注意的事情是集合的字面量表示法。我们可以简单的用这种方法创建一个集合:

>>> my_set ={1, 2, 1, 2, 3, 4}

>>> my_set

set([1, 2, 3, 4])

而不需要使用内置函数set()


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值