pythonsequence
❶ python如何定義一個函數求列表各項數據平均值
# coding = GBK
a =[1,2,3,4,5]
sum=0
b = len(a)
print("這個數組的長度為:",b)
for i in a:
sum =sum +i
print("這個數組之和為:",sum)
print("這個數組平均數為",sum/b)
或
import sys
sum = 0
cnt = 0
f = open('1.txt', 'r')
files = f.readline()
while (files ):
sum = sum + float(files .split(",")[0])
cnt = cnt + 1
files = f.readline()
print(sum / cnt)
f.close()
或者。
#!/usr/bin/env pythonimport timeimport numpy as np
dd = np.random.randint(0, 20, size=(2*1000*1000))t_start = time.clock()avg_sum1 =
0.0BlockOffset = 0 while BlockOffset < len(dd):
if dd[BlockOffset + 1] <= 10:
avg_sum1 += dd[BlockOffset + 1] * 0.1
else:
avg_sum1 += dd[BlockOffset + 0] * 0.01
BlockOffset += 2print('Avg: ' + str(avg_sum1 / len(dd) / 2)) print('Exe time: ' +
str(time.clock() - t_start))
(1)pythonsequence擴展閱讀:
python 實現求和、計數、最大最小值、平均值、中位數、標准偏差、百分比。
importsys
classStats:
def__init__(self, sequence):
# sequence of numbers we will process
# convert all items to floats for numerical processing
self.sequence=[float(item)foriteminsequence]
defsum(self):
iflen(self.sequence) <1:
returnNone
else:
returnsum(self.sequence)
defcount(self):
returnlen(self.sequence)
defmin(self):
iflen(self.sequence) <1:
returnNone
else:
returnmin(self.sequence)
defmax(self):
iflen(self.sequence) <1:
returnNone
else:
returnmax(self.sequence)
defavg(self):
iflen(self.sequence) <1:
returnNone
else:
returnsum(self.sequence)/len(self.sequence)
defmedian(self):
iflen(self.sequence) <1:
returnNone
else:
self.sequence.sort()
returnself.sequence[len(self.sequence)//2]
defstdev(self):
iflen(self.sequence) <1:
returnNone
else:
avg=self.avg()
sdsq=sum([(i-avg)**2foriinself.sequence])
stdev=(sdsq/(len(self.sequence)-1))**.5
returnstdev
defpercentile(self, percentile):
iflen(self.sequence) <1:
value=None
elif(percentile >=100):
sys.stderr.write('ERROR: percentile must be < 100. you supplied: %s '%percentile)
value=None
else:
element_idx=int(len(self.sequence)*(percentile/100.0))
self.sequence.sort()
value=self.sequence[element_idx]
returnvalue
❷ python如何一次性取出多個隨機數
Python內置的函數一次只能生成一個隨機數,然而你可以方便地使用表理解(list comprehension)一次性生成多個隨機數。示例的代碼如下:
importrandom
[random.randint(0,100)for_inrange(10)]
#[57,93,22,55,41,64,47,32,93,61]
range函數輸入不同的值,可以設置需要生成隨機數的個數,上面的例子中生成了10個隨機數。
❸ python常見數據類型
一,python整數類型所表示的數據。
1,一般用以表示一類數值:所有正整數,0和負整數;
2,整型作為最常用的,頻繁參與計算的數據類型,在python3.5中解釋器會自動在內存中創建-5-3000之間的(包含5,不包含3000)整型對象,也就是說在該范圍內,相等都是同一個已經創建好的整型對象。范圍之外的即使相等也表示不同對象,該特性隨python版本而改變,不要過於依賴。
3,bool型繼承了int型,他是int的子類。
4,Python2中有長整型long,數值范圍更大,在python3中已取消,所有整型統一由int表示。
5,參與所有數值計算,數學運算,科學計算。這也是所有編程語言都有的數據類型,因為編程語言生而需要模擬人的思維,藉助數學方式,自動計算、更好的解決大量重復性的事務,因此數值類型、整數類型在編程語言中不可或缺。
6,支持二進制(0b\0B開頭),十進制,八進制(0o\0O),十六進制(0x\0X)
二,python整數和浮點型支持常規的數值運算
整數和浮點數都可參與的運算:+ - * / %(取余) //(整除) **(冪)
Python字元型:
python字元型表示的數據:
python3支持Unicode編碼,由字母、數字和符號組成的形式就叫字元串,更接近或者相同與人們文字元號表示,因此在信息表示和傳遞時它也是最受認可的形式。在程序編寫中也是非常常用,對應的可操作的方法也很多,很有意思。
字元串不可被修改,可以拼接等方法創建新字元串對象;
支持分片和下標操作;a[2:]
支持+拼接,*重復操作和成員關系in/not in;
表示形式:用單引號雙引號包含起來的符號;a = str(『sdfsdfsdf』) 或 r』\t\nabcd』 原始字元,Bytes:b』abcd』;
6,字元串屬於不可變數據類型,內部機制為了節省空間,相同的兩個字元串表示相同的一個對象。a = 『python』 b = 『python』 a is b :True
二, 字元串支持的運算方法
1,capitalize() :首字母大寫後邊的字母小寫 a = 『abcd』 b = a.capitalize() b:Abcd
2,casefold() lower():字母轉換為全小寫
3,center(width,fillchar) :居中,width填補的長度;fillchar添加的字元
a = a.center(10,』_』) //』____abcd____』 默認無fillchar填充空格
4,count(sub,star,end) :字母計數:sub要查詢的字元
5,encode(encoding=』utf-8』,errors=』strict』) 設置編碼
Errors :設置錯誤類型
6,endswith(suffix,star,end) : 若以suffix結尾返回True
7,expandtabs(8) :設置字元串中tab按鍵符的空格長度:』\tabcde』
8,find(sub,star,end) : 返回指定范圍內的字元串下標,未找到返回-1
9,index(sub,star,end) :返回指定范圍字元串下標未找到拋出異常
10,isalnum() :判斷字元串是否是字母或數字,或字母和數字組合
11,isalpha() :判斷是否全是字母
12,isdecimal() :判斷字元串是否是十進制數值
13,isdigit() :判斷字元串是否是數字
14,isidentifier() :判斷字元串中是否包含關鍵字
15,islower() :判斷是否全小寫
16,isnumeric() :判斷全是數字
17,isspace() :判斷是否是空格
18,isupper() 判斷是否大寫
19,istitle() :判斷是否首字母大寫
20,join(iterable) :把可迭代對象用字元串進行分割:a.join(『123』)
21,ljust(width,fillchar);rjust() :左對齊右對齊
22, upper() :將字元串改為大寫
23,split(sep=None,maxsplit=-1) :分割一個字元串,被選中字元在字元串中刪除
『ab1cd1efg』.split(『1』) :[『ab』,』cd』,』efg』]
三,字元串格式化:按照規格輸出字元串
format(*args,**kwargs) :args位置參數,kwargs關鍵字參數
『{0:.1f}』.format(123.468) :格式化參數,小數點後保留1位四捨五入
四,字元串操作符%
1,%s :格式化字元串 『abcd%sdef』%』dddd』
2,%d:格式化整數
3,%o格式化無符號八進制
4,%x格式化無符號十六進制
5,%f格式化定點數
6, %e: 科學計數法格式化定點數
7,%g 根據值大小自動選%f,%e
8, %G E X :大寫形式
五,格式化輔助命令:
m.n :m最小總寬度,n小數點後位數:』%12.4f』%23456.789
六,轉義字元:字元串前r避免轉義:r』\nhello\thi』
\n:換行符
\t:橫向製表符
\':'
\":"
\b:退格符
\r:回車
\v:縱向製表符
\f:換頁符
\o,\x:八進制和十六進制
\0:空字元串
Python列表list
一,Python的列表list類型表示的數據:
Python列表在cpython中被解釋為長度可變的數組,用其他對象組成的連續數組。
列表中元素可以是相同或不同的數據類型;
當列表元素增加或刪除時,列表對象自動進行擴展或收縮內存,保證元素之間沒有縫隙,總是連續的。
Python中的列表是一個序列,也是一個容器類型
創建列表:a = []; b = [1,』python』]; c = list(); d = list((1,3,4,5))
支持切片操作list[start,stop,step]
python列表常用方法
1,append添加單個元素:list.append(object); //a.append(『python』)
2,extend添加可迭代對象: list.extend(iterable); //a.extend(『abcde』/[1,2,3])
3,insert 插入元素:list.insert(index,object): 在index下標前插入元素//a.insert(2,』python』)
4,clear 清空所有元素:list.clear() //a.clear()
5,pop 刪除並返回一個元素:list.pop(index) //默認刪除默認一個元素
remove 刪除指定元素:list.remove(v) ,v元素不存在報錯 //a.remove(『c』)
7,count 返回這個值在列表中數量:list.count(value)
8, 淺拷貝一個新列表:list.()
9,sort:排序list.sort(reverse=False/True) :默認升序
排序函數:sorted(list)
10,reverse: 原地翻轉:list.reverse()
11,index(value,star,stop) :指定范圍內該值下標:list.index(2,0,5)
列表元素訪問:
下標訪問:list[1]
For循環遍歷
通過下標修改元素:list[2 ] = 『hello』
列表常用運算符:
1,比較運算符:從第一個元素開始對比
2,+ 拼接一個新列表:l1+ l2
3, 重復操作符:* ,多個列表拼接
成員關系操作符:in/ not in
邏輯運算符:and not or
列表常用的排序方法:
冒泡排序;選擇排序;快速排序;歸並排序
Python元組tuple
一,Python元組tuple數據類型表示的數據:
元組是受到限制的、不可改變的列表;
可以是同構也可以是異構;
元組是序列類型、是可迭代對象,是容器類型。
元組的創建: a = (1,2,3)或a=1,2,3; b = tuple(); c = tuple(iterable)
支持切片操作tuple[start,stop,step]
二,python元組常用方法
1,index(value,star,stop) :指定范圍內該值下標:tuple.index(2,0,5)
2,count(value) :值出現次數
三,支持運算:
1,比較運算符:從第一個元素開始對比
2,+ 拼接一個新元組:l1+ l2
3, 重復操作符:* ,多個元組拼接
4成員關系操作符:in/ not in
邏輯運算符:and not or
四,元組的訪問
下標操作;
For循環遍歷訪問。
Python字典類型
一,Python字典dict表示的數據:{key:value}
可根據關鍵字:鍵快速索引到對應的值;
字典是映射類型,鍵值對一一對應關系,不是序列;
字典元素是無序的;
字典是可迭代對象,是容器類型;
字典的創建:k = {}; k1={『keyword』:object}; k2 = dict();
K3 = dict(mapping); dict=(iterable)
二,字典的訪問:
通過key:k[『key』]
修改key對應的值:K[『key』] = value
For循環遍歷出來的是key;
For循環鍵值對:for I in d.items():
For 循環enumerate: for k,v in enumerate(k1):
In/not in 成員關系查詢鍵不支持查值
三,字典常用方法
get(key,de):獲取值:k.get(key,de) //若不存在則默認輸出de
pop(k,de):刪除一個鍵值對,不存在輸出de,未設置報錯;
keys() :返回字典所有key組成的序列:list(k.keys()) [1,2,3];
values():返回字典所有value組成的序列:list(k.values())
items():返回鍵值對組成的元組為元素的序列:(類set)list(k.items())
update(e):更新字典:e可是字典或兩元素組成的單位元素序列:e=[(5,6),(7,8)];
k.update(e)
clear():清空字典;
popitem()刪除某個鍵值對,若字典為空則報錯
() :淺拷貝
10, fromkeys(iterable,value=None):從可迭代對象創建字典
{}.fromkeys([1,2,3]) -----{1:None,2:None,3:None}
11,setdefault(k,d=None) :若key不存在則生成一個鍵值對
k.setdefault(『keyword』)
Python 集合set
集合表示的數據:
多個元素的無序組合,集合是無序的,集合元素是唯一的;
字典的鍵是由集合實現的;
集合是可迭代對象
集合創建:s = {1,2}; s1 = set(); s2 = set(iterable)
集合元素的訪問:
For 循環將集合所有元素全部訪問一遍,不重復
常用方法:
add(object):s.add(『hi』) 向集合添加一個元素
pop() :彈棧,集合為空則報錯:刪除任意一個元素;
clear():清空集合,返回一個空集合對象;
remove(object):刪除一個元素,不存在和報錯:s.remove(『hi』)
update(集合):更新另一個集合,元素不存在則不更新;
() :淺拷貝
集合的運算:
交集:s1&s2;
差集,補集:s1-s2;
並集:s1|s2;
Issubset():判斷是否是子集:s1.issubset(s2) s1是否s2的集合子集
Issuperset():判斷是否是父集:s1.issuperset()
不可變集合:
Frozenset():返回一個空的不可變集合對象
Frozenset(iterable):
S = frozenset(iterable)
Python序列類型共同特性
一,序列類型共同特性
python序列類型有:str字元串,list列表,tuple元組
都支持下標索引,切片操作;
下標都是從0開始,都可通過下標進行訪問;
擁有相同的操作符
二,支持的函數:
len(obj):返回對象長度;
list(iterable):將可迭代對象轉為列表;
tuple(iterable):將可迭代對象轉為元組;
str(ojb):將任何對象轉為字元串形式;
max(iterable): python3中元素要是同類型,python2中元素可異構:max([『a』,1])
min(iterable):和max類似;
sum(iterable,star=0),求可迭代對象和,默認star為0,元素不能為字元串
sorted(iterable,key=None,reverse=False)
s=[(『a』,3),(『b』,2),(『c』,9)]
sorted(s,key=lambda s:s[1]) //按照數字排序
reversed(sequence):翻轉序列,返回迭代器
enumerate(iterable):返回enumerate對象,其元素都是一個元組(下標,值)
zip(iter1,iter2): zip([1,2],[3,4]) ----[(1,3),(2,4)]
序列類型的切片操作:
Slice:
L[index]; 訪問某個元素;
L[1:4]; 區間
L[star:stop:step]; 設置步長取區間元素
❹ python如何保留for循環結果
不同編程語言都有 for 語言,比如 C# 語言中的foreach, Java 語言中的for,在 Python 中的基本使用方法如下。
sequence為可迭代的對象,item為序列中的每個對象。
❺ Python的基本術語有哪些
Python解釋器
Python文本編輯器
Python代碼運行助手
輸入和輸出
Python基礎
數據類型和變數
字元串和編碼
使用list和tuple
條件判斷
循環
使用dict和set
函數
調用函數
定義函數
函數的參數
遞歸函數
高級特性
切片
迭代
列表生成式
生成器
迭代器
函數式編程
高階函數
map/rece
filter
sorted
返回函數
匿名函數
裝飾器
偏函數
模塊
使用模塊
安裝第三方模塊
面向對象編程
類和實例
訪問限制
繼承和多態
獲取對象信息
實例屬性和類屬性
面向對象高級編程
使用__slots__
使用@property
多重繼承
定製類
使用枚舉類
使用元類
錯誤、調試和測試
錯誤處理
調試
單元測試
文檔測試
IO編程
文件讀寫
StringIO和BytesIO
操作文件和目錄
序列化
進程和線程
多進程
多線程
ThreadLocal
進程 vs. 線程
分布式進程
正則表達式
常用內建模塊
datetime
collections
base64
struct
hashlib
hmac
itertools
contextlib
urllib
XML
HTMLParser
常用第三方模塊
Pillow
requests
chardet
psutil
virtualenv
圖形界面
網路編程
TCP/IP簡介
TCP編程
UDP編程
電子郵件
SMTP發送郵件
POP3收取郵件
訪問資料庫
使用SQLite
使用MySQL
使用SQLAlchemy
Web開發
HTTP協議簡介
HTML簡介
WSGI介面
使用Web框架
使用模板
非同步IO
協程
asyncio
async/await
aiohttp
❻ python中怎麼在一個.py文件中調用另一個.py的方法
從序列中獲取一個隨機元素。參數sequence表示一個有序類型。這里要說明 一下:sequence在python不是一種特定的類型,而是泛指一系列的類型。
list, tuple, 字元串都屬於sequence。
❼ 如何用python只提取某一行sequence
你要做什麼?
❽ python:choice函數的作用是什麼
random.choice
random.choice從序列中獲取一個隨機元素。其函數原型為:random.choice(sequence)。參數sequence表示一個有序類型。這里要說明 一下:sequence在python不是一種特定的類型,而是泛指一系列的類型。list, tuple, 字元串都屬於sequence。有關sequence可以查看python手冊數據模型這一章。下面是使用choice的一些例子:
print random.choice("學習Python")
print random.choice(["JGood", "is", "a", "handsome", "boy"])
print random.choice(("Tuple", "List", "Dict"))
❾ Python如何計算序列長度
根據你之前的問題,假定你的數據符合這種格式:
>SeqName1
Seq1
>SeqName2
Seq2
...
這里不要求Seq1隻佔一行(即允許其中有換行符出現)。假如Seq總是只佔一行的話,其實就是奇數行是名字,偶數行是序列本體而已,讀取不要太簡單……
以下是簡單的實現。考慮到文件可能很大,使用迭代來逐個讀入數據。文件較小的情況可以使用列表表達式直接實現- -。
遍歷文件時的流程:
如當前行以'>'開始,將其存為k(序列名稱),直到發現下一個序列名稱為止的所有行,填入v(序列)。再次發現'>'開始的行時,將(k, v)存入字典,並將v清空。此外的是實現細節。注釋之後太啰嗦了,對哪裡有疑問請追問。
fileFa=open("SEQ.FASTA","r")
dic,k,v={},'',[]
foriinfileFa:
ifi.startswith('>'):
dic[k]=v
k=i[1:-1]
v=[]
else:
v.append(i)
dic[k]=v
dic.pop('')
print"%ssequencesintotal"%len(dic)
for(k,v)indic.items():
print("SEQUENCE:%s LENGTH:%s"%(k,sum(map(len,v))))
使用你上一問題提供的4個序列,輸出如下:
4sequencesintotal
SEQUENCE:qwe56_44514
LENGTH:98
SEQUENCE:qwe56_44606
LENGTH:82
SEQUENCE:qwe56_44424
LENGTH:43
SEQUENCE:qwe56_869
LENGTH:39
❿ python腳本到abaqus裡面運行是總是出現sequence index out of range。具體見下
答主解決了嗎 我也是這個問題