Python 练习2
生成一个有N个元素的有随机整数n组成的列表,其中N和年的取值范围是(1<N<=5)
和(0<=n<100),显示这个列表的所有子集。
N个数字空有2en个子集,对于这N个数字在每个子集中来讲要么存在要么不存在,可以采用子集映射为2进制的算法。
例如[a,b]集合的子集:
空 ---- 00
a ---- 10
b ---- 01
ab ---- 11
因此问题简化为列出所有小于2en的数字的2进制形式,将其对应即可
#!/usr/bin/python
import random
def bin(x):
x=int(x)
if x==0:
return str(0)
else:
result=''
while x>0:
mod=x%2
x=x/2
result=str(mod)+result
return result
def getAllSubset(aList):
allSubset=[]
aListLen=len(aList)
combination=pow(2,aListLen)
for i in range(combination):
str2=bin(i)
differ=aListLen-len(str2)
str2=''.join(['0' for i in range(differ)])+str2
subset=[]
for j in range(aListLen):
if int(str2[j])==1:
subset.append(aList[int(j)])
allSubset.append(subset)
return allSubset
if __name__ == "__main__":
num=random.randint(2,5)
aList=[random.randint(0,100) for i in range(num)]
allSubset=getAllSubset(aList)
print allSubset
相关文档:
Python支持ascii字符串,unicode字符串,以及各种字符集,那么它们到底各是什么概念,相互之间存在何种关系呢?
在Python中,ascii字符串,即str类型的值,可能用来表示任意的一块存储空间,那么也就是说,这个字符串内部可以是任何值,例如:可见字符组成的字符串,或者一段二进制数据等。unicode字符串,即unicode类型的 ......
看着网上抓取网页数据的文章直瞪眼
后来想到用字符串分割来提取相应部分的内容
程序简单,但数行数和下标费了很长时间
我知道这肯定不是最好的办法- -!!
但我实现了,哈哈
# -*- coding: cp936 -*-
from urllib import *
import re
def stockSearch():
baseurl="http://www.google.cn/financ ......
当要使函数接收元组或字典形式的参数的时候,有一种特殊的方法,它分别使用*和**前缀。这种方法在函数需要获取可变数量的参数的时候特别有用。
>>> def powersum(power, *args):
... '''Return the sum of each argument raised to specified power.'''
... ......
>>> import string
>>> s='adbecf'
>>>
tt=string.maketrans("abc","ABC")
>>> s.translate(tt,"")
'AdBeCf'
>>>
s.translate(tt,"")
后面的那个空字符创就是你要删除的字符,比如要删除换行就是s.translate(tt,"\n&q ......
原文
http://www.hetland.org/python/instant-hacking.php
Instant Hacking[译
文]
译者: 肯定来过   ......