python整型數組
『壹』 python實現,輸入一個正整數數組,把數組里所有數字拼接起來排成一個數,列印能拼接
你的例子第一列全是 3,我給個例子吧:[321, 32, 3, 4],輸出該是 321,32,3,4。
第一個數越大,則應該排在後面,畢竟 4XXX 是比 3XXX 大的。
setp1:[0][1][2]
321
32
3
4
排序第0列,越大的排越後。
ret=[?,?,?,4]
setp2:[0][1][2]
321
32
3<3><-補位3,因為3是同3組第一個元素。
排序第1列,越大的排越後。
ret=[?,?,3,4]
setp3:[0][1][2]
321
32<3><-補位3,因為3是同3組第一個元素。
排序第2列,越大的排越後。323比321大,所以……
ret=[?,32,3,4]
只剩一個,那個排第一:
ret=[321,32,3,4]
以上就是基本思路了。綜上可得:
1. 先按 [0] 列分組:
2. 組中每個數都補位到同樣長度,然後再排序。
完整代碼:
defjoinmin(ls):
groups={}
foriteminls:
prefix=item
n=0
whileprefix>10:
prefix//=10
n+=1
groups.setdefault(prefix,[]).append([item,n])
sorted_keys=list(sorted(groups))
ret=0
forprefixinsorted_keys:
items=groups[prefix]
max_n=max([t[1]fortinitems])
presort_items=[]
foritem,item_ninitems:
padding=item
n=item_n
whilemax_n>n:
padding*=10
padding+=prefix
n+=1
presort_items.append((padding,item,item_n))
for_,item,ninsorted(presort_items):
whilen>-1:
ret*=10
n-=1
ret+=item
returnret
不是看在你的分上答的,不過這種小題目蠻有趣的。
『貳』 python支持的數據類型
數字:數字類型是不可更改的對象。對變數改變的數字值就是生成/創建新的對象。Python支持多種數字類型:整型、布爾型、雙精度浮點型、十進制浮點型、復數等。
字元串:字元串是不可變類型。就是說改變一個字元串的元素需要新建一個新的字元串,字元串是由獨立的字元組成的,並且這些字元可以通過切片操作順序地訪問。Python裡面通過在引號間包含字元的方式創建字元串,單引號和雙引號的作用是相同的。Python實際上有三類字元串,通常意義的字元串和Unicode字元串實際上都是抽象類basestring的子類。
列表:像字元串類型一樣,列表類型也是序列式的數據類型,字元串只能由字元組成,而且是不可變的,列表則是能保留任意數目的Python對象的靈活的容器。列表不僅可以包含Python的標准類型,可以用用戶定義的對象作為自己的元素。列表可以包含不同類型的對象,要比C或者Python自己的數組類型都要靈活,因為數組類型所有的元素只能是一種類型。列表可以執行pop、sort、reverse等操作。
元組:元組類型在很多操作上跟列表一樣,許多用在列表上的例子在元組上照樣可以用。他們主要不同在於元組是不可變的,或者說是只讀的,所以那些用於更新列表的操作,比如用切片操作來更新一部分元素的操作,就不能用於元組類型。
字典:字典是Python語言中唯一的映射類型。映射類型對象里哈希值(鍵,key) 和指向的對象(值。value)
是一對多的關系。一個字典對象是可變的,它是一個容器類型,能存儲任意個數的Python對象,其中包括其他容器類型。字典類型和序列類型容器類的區別是存儲和訪問數據的方式不同。序列類型只用數字類型的鍵。映射類型可以用其他對象類型做鍵,一般最常用的是用字元串做鍵。字典常見的操作有:字典創建、字典賦值、字典中值的訪問、字典更新、字典元素刪除等操作。
集合。最早出現在Python2.3版本中,通過集合模塊來創建,並通過immutableset類和set類進行訪問。集合有兩種不同的類型,可變集合和不可變集合。可變集合,可以添加和刪除元素,不可變集合則不允許這樣做。
『叄』 Python怎麼實現生成一個擁有100個數的隨機整數數組,數值在1到100之間
import random
print([random.randint(1,100) for i in range(100)])