python數據排序
❶ python 給文檔內部數字排序
with open('word1','r') as r:
with open('word2' , 'w') as w:
nums = list(r.readline()).sorted()
word2.write(' '.joins(nums))
❷ 各位大神,用python對資料庫中的某列數據排序怎麼搞不是用sql來排序哦
通過例子來說明sorted的用法:
1.對由tuple組成的List排序
Python代碼
>>>students=[('john','A',15),('jane','B',12),('dave','B',10),]
用key函數排序(lambda的用法見注釋1)
Python代碼
>>>sorted(students,key=lambdastudent:student[2])#sortbyage
[('dave','B',10),('jane','B',12),('john','A',15)]
用cmp函數排序
Python代碼
>>>sorted(students,cmp=lambdax,y:cmp(x[2],y[2]))#sortbyage
[('dave','B',10),('jane','B',12),('john','A',15)]
用operator函數來加快速度,上面排序等價於:(itemgetter的用法見注釋2)
Python代碼
>>>fromoperatorimportitemgetter,attrgetter
>>>sorted(students,key=itemgetter(2))
用operator函數進行多級排序
Python代碼
>>>sorted(students,key=itemgetter(1,2))#sortbygradethenbyage
[('john','A',15),('dave','B',10),('jane','B',12)]2.對由字典排序
Python代碼
>>>d={'data1':3,'data2':1,'data3':2,'data4':4}
>>>sorted(d.iteritems(),key=itemgetter(1),reverse=True)
[('data4',4),('data1',3),('data3',2),('data2',1)]
❸ python怎麼實現數組排序
#合成一個字典來
ab=dict(zip(a,b))
#根據源字典的鍵進行排序(也就是第一個列表);也可以根據第二個列表進行排序。
#具體是升序還是降序,自己挑著來。
ab_order=sorted(ab.items(),key=lambdax:x[0],reverse=
False)
❹ python 字元串列表中根據字元串內的數字進行排序。
你的列表A現在不就來是按自所含數字從大到小排列的嗎?
不過,我還是用正則表達式的方法幫你排了一下序,如果你要數字從小到大排序,只要把alist.sort(key=sort_key,reverse=True)改成alist.sort(key=sort_key,reverse=False)就行了.
完整的Python程序如下
importre
defsort_key(s):
ifs:
try:
c=re.findall('d+$',s)[0]
except:
c=-1
returnint(c)
defstrsort(alist):
alist.sort(key=sort_key,reverse=True)
returnalist
A=['abc15','abd13','abe9','abf6','abg2']
print(strsort(A))
❺ Python對文本裡面的內容排序
把文本的格式貼出來看看
假設格式是:
5KB
100KB
1MB
3MB
9MB
2MB
可用下面的程序(python3)
units={"KB":1,"MB":1024}
defcalc(x):
forunit,amountinunits.items():
ifx.find(unit)>0:
number=int(x[:-2])
number*=amount
returnnumber
file=open("sort.txt","r")
values=list(file)
file.close()
values=[value[:-1]forvalueinvalues]
values.sort(key=calc)
print(values)
values=[value+" "forvalueinvalues]
file=open("sort.txt","w")
file.write("".join(values))
file.close()
❻ python 如何實現數據亂序排列
可是使用random模塊裡面的shuffle方法
>>> import random
>>> a = [1,2,3,4,5,6]
>>> random.shuffle(a)
>>> a
[6, 4, 2, 3, 5, 1]
❼ python 讀取文件 給數字排序
#-*-coding:utf-8–*-
#讀取名為data的txt文件
f=open('data.txt','r')
DATA=f.read()
#按行分割txt內容
DATA=DATA.split(' ')
#建立字典,人名為key,分數為value,分數需要使用int轉換。
dataDic={}
foriinDATA:
i=i.split('')
dataDic[i[0]]=int(i[-1])
#按照字典的value排序
result=sorted(dataDic.iteritems(),key=lambdat:t[1],reverse=True)
#列印結果
foriinresult:
printi[0],i[1]
#結果:
#小紅100
#小明99
#狗剩兒95
#大明88
❽ python二維數組按第一列排序問題,整行數據一起排序。
def by0(t):
return t[0]
a=[[1,2,4],[6,3,5],[2,4,5]]
a0=sorted(a,key=by0)
print(a0)
如果是多維數組按當中某行數據排序,修改自版定義函數中return的數權就行了
❾ python dataframe怎麼排序
排序分為降序和升序,dataframe排序包含單列排序和多列排序
#/usr/bin/python
#-*-coding:utf-8-*-
#導入依賴包pandas
importpandasaspd
#讀入數據
dat=pd.read_csv('data.txt','r')
#單列排序
#使用sort,默認是升序,所以下面的兩個方法等價
dat.sort(["column1"])
dat.sort(["column1"],ascending=True)
#單列降序
dat.sort(["column1"],ascending=False)
#多列升序
dat.sort(["column1","column2"])
dat.sort(["column1","column2"],ascending=True)
#多列降序
dat.sort(["column1","column2"],ascending=False)