Python/sorts/topological_sort.py

Python/sorts/topological_sort.py

collection
[5, 9, 10, 3, -4, 5, 178, 92, 46, -18, 0, 7]

def __assert_sorted(collection):
if collection != sorted(collection):
raise ValueError(‘Collection must be ascending sorted’)
return 1

s=__assert_sorted(collection)
Traceback (most recent call last):
File “<pyshell#25>”, line 1, in
s=__assert_sorted(collection)
File “<pyshell#24>”, line 3, in __assert_sorted
raise ValueError(‘Collection must be ascending sorted’)
ValueError: Collection must be ascending sorted

def __assert_sorted(collection):
if False:
raise ValueError(‘Collection must be ascending sorted’)
return 1

s=__assert_sorted(collection)
s
1

def __assert_sorted(collection):
if True:
raise ValueError(‘Collection must be ascending sorted’)
return 1

s=__assert_sorted(collection)
Traceback (most recent call last):
File “<pyshell#32>”, line 1, in
s=__assert_sorted(collection)
File “<pyshell#31>”, line 3, in __assert_sorted
raise ValueError(‘Collection must be ascending sorted’)
ValueError: Collection must be ascending sorted

s
1

Python/searches/jump_search.py

#return 一般用在函数里面的,用在循环里面会报错

for index,item in enumerate(sequence):
if item==target:
return index

SyntaxError: ‘return’ outside function

for index,item in enumerate(sequence):
if item==target:
print(index)

6

def linear_search(sequence, target):
for index,item in enumerate(sequence):
if item==target:
return index
return None

s=linear_search(sequence, target)
s
6

Python/searches/tabu_search.py

for n in collection[1:-1]:
print(n)

9
10
3
-4
5
178
92
46

collection
[5, 9, 10, 3, -4, 5, 178, 92, 46, -18]

Python/project_euler/

def signature(word):
return ‘’.join(sorted(word))

s=signature(“s”)
s
‘s’

s=signature([“s”,“b”,“c”])
s
‘bcs’

Python/other/anagrams.py

list(1,2,3)
Traceback (most recent call last):
File “<pyshell#0>”, line 1, in
list(1,2,3)
TypeError: list() takes at most 1 argument (3 given)

sorted(list(set(“A”,“B”,“k”)))
Traceback (most recent call last):
File “<pyshell#3>”, line 1, in
sorted(list(set(“A”,“B”,“k”)))
TypeError: set expected at most 1 arguments, got 3

sorted(list(set(“Ang”)))
[‘A’, ‘g’, ‘n’]

set(“Ang”)
{‘A’, ‘n’, ‘g’}

list(‘A’, ‘n’, ‘g’)
Traceback (most recent call last):
File “<pyshell#6>”, line 1, in
list(‘A’, ‘n’, ‘g’)
TypeError: list() takes at most 1 argument (3 given)

list({‘A’, ‘n’, ‘g’})
[‘A’, ‘n’, ‘g’]

dir(list)
[‘add’, ‘class’, ‘contains’, ‘delattr’, ‘delitem’, ‘dir’, ‘doc’, ‘eq’, ‘format’, ‘ge’, ‘getattribute’, ‘getitem’, ‘gt’, ‘hash’, ‘iadd’, ‘imul’, ‘init’, ‘init_subclass’, ‘iter’, ‘le’, ‘len’, ‘lt’, ‘mul’, ‘ne’, ‘new’, ‘reduce’, ‘reduce_ex’, ‘repr’, ‘reversed’, ‘rmul’, ‘setattr’, ‘setitem’, ‘sizeof’, ‘str’, ‘subclasshook’, ‘append’, ‘clear’, ‘copy’, ‘count’, ‘extend’, ‘index’, ‘insert’, ‘pop’, ‘remove’, ‘reverse’, ‘sort’]
####list是uncalltable对象但是可以这样用来转换

list({‘A’, ‘n’, ‘g’})
[‘A’, ‘n’, ‘g’]

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

round(9.8785876767)
10

Python/other/binary_exponentiation.py

&与

=右移赋值

b=9
b >>= 1
b
4

b >>= 1
b
2

b >>= 1
b
1

b >>= 1
b
0

b=30
b >>= 1
b
15

b >>= 1
b
7

path=os.path.split(“C:/Users/Administer/Desktop/test1.fa”)
path[0]
‘C:/Users/Administer/Desktop’

path[1]
‘test1.fa’

englishWords = {}
with open(path[0] + ‘/test2.fq’) as dictionaryFile:
for word in dictionaryFile.read().split(’\n’):
englishWords[word] = None

englishWords
{’@NM_0112835 gene=Rp1 CDS=128-6412’: None, ‘AATAAATCCAAAGACATTTGTTTACGTGAAACAAGCAGGTTGCATATCCAGTGACGTTTATACAGACCAC’: None, ‘ACAAACTATTTACTCTTTTCTTCGTAAGGAAAGGTTCAACTTCTGGTCTCACCCAAAATGAGTGACACAC’: None, ‘CTTCTACTAGTTTCTCCATGATTCATCTGACTTCTGAAGGTCAAGTTCCTTCCCCTCGCCATTCAAATAT’: None, ‘@NM_0112888 gene=Rp1 CDS=128-6412’: None, ‘CACTCATCCTGTAGTGGCTAAACGCATCAGTTTCTATAAGAGTGGAGACCCACAGTTTGGCGGCGTTCGG’: None, ‘GTGGTGGTCAACCCTCGTTCCTTTAAGACTTTTGACGCTCTGCTGGACAGTTTATCCAGGAAGGTACCCC’: None, ‘TGCCCTTTGGGGTAAGGAACATCAGCACGCCCCGTGGACGACACAGCATCACCAGGCTGGAGGAGCTAGA’: None, ‘@NM_01128777 gene=Rp1 CDS=128-6412’: None, ‘GGACGGCAAGTCTTATGTGTGCTCCCACAATAAGAAGGTGCTGCCAGTTGACCTGGACAAGGCCCGCAGG’: None, ‘CGCCCTCGGCCCTGGCTGAGTAGTCGCTCCATAAGCACGCATGTGCAGCTCTGTCCTGCAACTGCCAATA’: None, ‘TGTCCACCATGGCACCTGGCATGCTCCGTGCCCCAAGGAGGCTCGTGGTCTTCCGGAATGGTGACCCGAA’: None, ‘@HWI-ST1223:80:D1FMTACXX:2:1101:1243:2213 1:N:0:AGTCAA’: None, ‘TCTGTGTAGCCNTGGCTGTCCTGGAACTCACTTTGTAGACCAGGCTGGCATGCACCACCACNNNCGGCTCATTTGTCTTTNNTTTTTGTTTTGTTCTGTA’: None, ‘+’: None, ‘BCCFFFFFFHH#4AFHIJJJJJJJJJJJJJJJJJIJIJJJJJGHIJJJJJJJJJJJJJIIJ###–5ABECFFDDEEEEE##,5=@B8?CDDC:@>’: None, ‘@HWI-ST1223:80:D1FMTACXX:2:1101:1375:2060 1:N:0:AGTCAA’: None, ‘NTGCTGAGCCACGACAAGGATCCCAGAGGGCCNAGCCCTGCATCTTGTATGGACCAGTTACNCATCAAAAGAGACTACTGTAGGCACCATCAATCAGATC’: None, ‘#1:DDDD;?CFFHDFEEIGIIIIIIG;DHFGG#)0?BFBDHBFF<FCFEFD;@DD@A=7?E#,;=(>3;=;;C>ACCC@CCCCCBBBCCAACCCCCCC’: None, ‘@HWI-ST1223:80:D1FMTACXX:2:1101:1383:2091 1:N:0:AGTCAA’: None, ‘NGTTCGTGTGGAACCTGGCGCTAAACCATTCGTAGACGACCTGCTTCTGGGTCGGGGTTTCGTACGTAGCAGAGCAGCTCCCTCGCTGCGATCTATTGAA’: None, ‘#1=DDFDFHHHHHJGJJJJJJJJJJJJJJJIJIGDHIHIGIJJJJJJJIIIGHHFDD3>BDDBDDDDDDDDDDBDCCBDDDDDDDDDDDBBDDDDEEACD’: None, ‘@HWI-ST1223:80:D1FMTACXX:2:1101:1452:2138 1:N:0:AGTCAA’: None, ‘NTCTAGGAGGTCTAGAAAGCCCAGGCCACCGGTACAAACATCAAGGGTGTTACGGATGTGCCGCTCTGAACCTCCAGGACGACTTTGATTTCAACTACAA’: None, ‘#4=DFFEFHHHHHJJJJJIJJJJHIIJGJJJJ@GIIJJJJJJIJJJJFGHIIIJJHHHDFFFFDDDDDDDDDDDDCDDDDDDDDDDDCCCEDEDDDDDDD’: None, ‘@errrr’: None, ‘>NM_01gggggggjjjj gene=Rp1 CDS=128-6412’: None, ‘’: None}

lettersOnly=[“q”,“f”,“g”,“s”]
‘’.join(lettersOnly)
‘qfgs’

‘qfgs’.upper()
‘QFGS’

‘QFGS’.split()
[‘QFGS’]

Python/other/finding_Primes.py

sieve = [False if i <2 else True for i in range(5+1)]
sieve
[False, False, True, True, True, True]

#对字典dict进行操作

letterCount
{‘A’: 0, ‘B’: 0, ‘C’: 0, ‘D’: 0, ‘E’: 0, ‘F’: 0, ‘G’: 0, ‘H’: 0, ‘I’: 0, ‘J’: 0, ‘K’: 0, ‘L’: 0, ‘M’: 0, ‘N’: 0, ‘O’: 0, ‘P’: 0, ‘Q’: 0, ‘R’: 0, ‘S’: 0, ‘T’: 0, ‘U’: 0, ‘V’: 0, ‘W’: 0, ‘X’: 0, ‘Y’: 0, ‘Z’: 0}

letterCount[‘A’] += 1
letterCount
{‘A’: 1, ‘B’: 0, ‘C’: 0, ‘D’: 0, ‘E’: 0, ‘F’: 0, ‘G’: 0, ‘H’: 0, ‘I’: 0, ‘J’: 0, ‘K’: 0, ‘L’: 0, ‘M’: 0, ‘N’: 0, ‘O’: 0, ‘P’: 0, ‘Q’: 0, ‘R’: 0, ‘S’: 0, ‘T’: 0, ‘U’: 0, ‘V’: 0, ‘W’: 0, ‘X’: 0, ‘Y’: 0, ‘Z’: 0}

freqToLetter[2] = [‘A’]
freqToLetter
{2: [‘A’]}

freqToLetter[0] = [“B”]
freqToLetter
{2: [‘A’], 0: [‘B’]}

##在dict中使用append是已经存在的key才可以用append方法

letter=“E”
freqToLetter[letterToFreq[letter]].append(letter)
freqToLetter
{2: [‘A’], 0: [‘B’, ‘E’]}

freqToLetter[0].append(“K”)
freqToLetter
{2: [‘A’], 0: [‘B’, ‘E’, ‘K’]}

freqToLetter[9].append(“HH”)
Traceback (most recent call last):
File “<pyshell#198>”, line 1, in
freqToLetter[9].append(“HH”)
KeyError: 9

for freq in freqToLetter:
print(freq)

2
0

freqToLetter[2] = ‘’.join(freqToLetter[2])
freqToLetter[0] = ‘’.join(freqToLetter[0])
freqToLetter
{2: ‘A’, 0: ‘BEK’}

sort 和 lambda
我们需要将一些string

按字符长排序words = [‘foo’, ‘card’, ‘bar’, ‘aaaa’, ‘abab’]
words.sort(key = lambda x : len(x))

按字符不同字母数量排序words = [‘foo’, ‘card’, ‘bar’, ‘aaaa’, ‘abab’]
words.sort(key = lambda x : len(set(x)))

freqToLetter={2: [‘A’], 0: [‘B’, ‘E’, ‘K’]}
ETAOIN = ‘996’
freqToLetter[0].sort(key = ETAOIN.find, reverse = True)
freqToLetter
{2: [‘A’], 0: [‘B’, ‘E’, ‘K’]}

ETAOIN = ‘ETAOINSHRDLCUMWFGYPBVKJXQZ’
freqToLetter[0].sort(key = ETAOIN.find, reverse = True)
freqToLetter
{2: [‘A’], 0: [‘K’, ‘B’, ‘E’]}

ETAOIN = ‘BETAOINSHRDLCUMWFGYPBVKJXQZ’
freqToLetter[0].sort(key = ETAOIN.find, reverse = True)
freqToLetter
{2: [‘A’], 0: [‘K’, ‘E’, ‘B’]}

ETAOIN = ‘KBETAOINSHRDLCUMWFGYPBVKJXQZ’
freqToLetter[0].sort(key = ETAOIN.find, reverse = True)
freqToLetter
{2: [‘A’], 0: [‘E’, ‘B’, ‘K’]}

freqToLetter={2: ‘A’, 0: ‘BEK’}
list(freqToLetter.items())
[(2, ‘A’), (0, ‘BEK’)]

freqToLetter={2: ‘A’, 0: ‘BEK’}
list(freqToLetter.items())
[(2, ‘A’), (0, ‘BEK’)]

freqPairs = list(freqToLetter.items())
freqOrder = []
for freqPair in freqPairs:
print(freqPair)

(2, ‘A’)
(0, ‘BEK’)

freqPair[1]
‘BEK’

freqOrder.append(‘A’)
freqOrder.append(‘BEK’)
freqOrder
[‘A’, ‘BEK’]

‘’.join(freqOrder)
‘ABEK’

Python/other/game_of_life.py

canvas=[[False, False, False, False, False], [True, True, False, True, False], [True, True, False, True, False], [True, False, False, True, True], [True, False, False, False, False]]
canvas = np.array(canvas)
canvas
array([[False, False, False, False, False],
[ True, True, False, True, False],
[ True, True, False, True, False],
[ True, False, False, True, True],
[ True, False, False, False, False]])

canvas[0:3,1:4]
array([[False, False, False],
[ True, False, True],
[ True, False, True]])

Python/other/nested_brackets.py

from string import ascii_letters, digits, punctuation
chars = tuple(ascii_letters) + tuple(digits) + tuple(punctuation)
chars
(‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘g’, ‘h’, ‘i’, ‘j’, ‘k’, ‘l’, ‘m’, ‘n’, ‘o’, ‘p’, ‘q’, ‘r’, ‘s’, ‘t’, ‘u’, ‘v’, ‘w’, ‘x’, ‘y’, ‘z’, ‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’, ‘G’, ‘H’, ‘I’, ‘J’, ‘K’, ‘L’, ‘M’, ‘N’, ‘O’, ‘P’, ‘Q’, ‘R’, ‘S’, ‘T’, ‘U’, ‘V’, ‘W’, ‘X’, ‘Y’, ‘Z’, ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’, ‘!’, ‘"’, ‘#’, ‘$’, ‘%’, ‘&’, “’”, ‘(’, ‘)’, ‘*’, ‘+’, ‘,’, ‘-’, ‘.’, ‘/’, ‘:’, ‘;’, ‘<’, ‘=’, ‘>’, ‘?’, ‘@’, ‘[’, ‘\’, ‘]’, ‘^’, ‘_’, ‘`’, ‘{’, ‘|’, ‘}’, ‘~’)

‘’.join(chars)
‘abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!"#$%&’()*+,-./:;<=>?@[\]^_`{|}~’

Python/other/primelib.py

graph = [[0, 16, 13, 0, 0, 0],
[0, 0, 10 ,12, 0, 0],
[0, 4, 0, 0, 14, 0],
[0, 0, 9, 0, 0, 20],
[0, 0, 0, 7, 0, 4],
[0, 0, 0, 0, 0, 0]]

[i[:] for i in graph]
[[0, 16, 13, 0, 0, 0], [0, 0, 10, 12, 0, 0], [0, 4, 0, 0, 14, 0], [0, 0, 9, 0, 0, 20], [0, 0, 0, 7, 0, 4], [0, 0, 0, 0, 0, 0]]

Python/searches/binary_search.py

如果try语句后面的代码没有报错,那么except语句就没有起作用。相反try语句报错,将执行except语句后面的代码。

try-except语句支持多个except语句。

def __assert_sorted(collection):
if collection != sorted(collection):
raise ValueError(‘Collection must be ascending sorted’)
print(“aa”)

__assert_sorted(collection)
Traceback (most recent call last):
File “<pyshell#160>”, line 1, in
__assert_sorted(collection)
File “<pyshell#157>”, line 15, in __assert_sorted
raise ValueError(‘Collection must be ascending sorted’)
ValueError: Collection must be ascending sorted

s= __assert_sorted(collection)
Traceback (most recent call last):
File “<pyshell#171>”, line 1, in
s= __assert_sorted(collection)
File “<pyshell#157>”, line 15, in __assert_sorted
raise ValueError(‘Collection must be ascending sorted’)
ValueError: Collection must be ascending sorted
####可以看出抛出错误后不再执行后面的语句print(“aa”“)

collection=sorted(collection)
s= __assert_sorted(collection)
aa
####没有报错才执行后面的语句

try:
__assert_sorted(collection)
except ValueError:
sys.exit(‘Sequence must be ascending sorted to apply binary search’)

###sys.exit没有反应
#改为print形式

try:
__assert_sorted(collection)
except ValueError:
print(‘Sequence must be ascending sorted to apply binary search’)

Sequence must be ascending sorted to apply binary search

#成功

def fetcher(obj, index):
return obj[index]

x=“sdfd”
try:
fetcher(x,9)
except IndexError:
print(‘got exception’)

got exception

target
5

result
[1]

if result is not None:
print(’{} found at positions: {}’.format(target, result))
else:
print(‘Not found’)

5 found at positions: [1]

Python/searches/interpolation_search.py

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值