當前位置:首頁 » 編程語言 » pythondict隨機

pythondict隨機

發布時間: 2022-04-27 03:54:51

python中,dict(((1,2),(2,3)))可以,為什麼dict((1,2))會報錯呢

答案:因為dict((1,2))中的參數(1,2)的第一個元素1是不可迭代的,所以報錯。具體分析如下:

  • dict()的機制如下

報錯的原因在於列表的第一項中只有一個元素,並且不可迭代。也就無法拆包。對應於dict((1,2))中的參數是(1,2),這個參數的第一個元素是整數1,是不可迭代的,所以報錯。

㈡ 關於python dict函數問題

x = input("請輸入X的值:")
dict1 = {"1":"001","2":"010","3":"011","4":"100"}
x_print= ""
for i in x:
x_print = x_print + dict1[i]
print(x_print)
我的python是3.6的語法可能不太一樣

㈢ 如何用python編寫一個簡易的隨機點名軟體

思路:1、定義一個字典,把名字和數字對應起來;2、引用隨機模塊;3、輸入要點名的個數,通過循環輸出名字。

具體代碼如下:

#-*-coding:utf-8-*-

fromrandomimportrandint
DictName={1:'Aaron',
2:'Abel',
3:'Abraham',
4:'Adam',
5:'Adrian',
6:'Alva',
7:'Alex',
8:'Alexander',
9:'Alan',
10:'Albert',
11:'Alfred',
12:'Andrew',
13:'Andy',
14:'Angus',
15:'Anthony',
16:'Arthur',
17:'Austin',
18:'Ben',
19:'Benson',
20:'Bill',
21:'Bob',
22:'Brandon',
23:'Brant',
24:'Brent',
25:'Brian',
26:'Bruce',
27:'Carl',
28:'Cary',
29:'Caspar',
30:'Charles',
31:'Cheney',
32:'Chris',
33:'Christian',
34:'Christopher',
35:'Colin',
36:'Cosmo',
37:'Daniel',
38:'Dennis',
39:'Derek',
40:'Donald',
41:'Douglas',
42:'David',
43:'Denny',
44:'Edgar',
45:'Edward',
46:'Edwin',
47:'Elliott',
48:'Elvis',
49:'Eric',
50:'Evan',
51:'Francis',
52:'Frank',
53:'Franklin',
54:'Fred',
55:'Gabriel',
56:'Gaby',
57:'Garfield',
58:'Gary'}

Num=raw_input('請輸入需要點名個數:')
flag=True

whileflag:
ifNum.isdigit():
Ind=int(Num)
flag=False
else:
print'輸入錯誤,請確認'
else:
foriinrange(Ind):
printDictName[randint(1,58)]

運行結果:

請輸入需要點名個數:4

Brant

Cheney

David

Alan

㈣ python字典,是來干什麼的啊

dict 是記錄復雜無序數據,就是一對多,可以理解為多維數組.
映射類型相關的函數
比如你記錄一次野餐朋友帶的食物數量, dict = {'小明':{'紅燒肉':6,'大閘蟹':8,'水煮魚':1},'小花':{'黃瓜':9,'番茄':2},'小六子':{'啤酒':30,'可樂':40}}
dict可以嵌套list,把無序的數據調整為有序的數據,可以簡單地理解為,一對多個一維數組,本質上還是多維數組.
比如你要記錄同學們有多少個女朋友,dict = {'小明':['1號女友','2號女友'],'大個子':['1號女友','2號女友','3號女友']},你要統計誰的女朋友多,這個就比較明顯地體現出來了.
比如你要記錄一次會議參加的人員的基本信息,大家的信息都不一樣時,也是無序隨機事件:
dict = {'男性':{'張博':{'年齡':30,'職業':'老師','級別':'高級教師'},'王強':{'手機':'1309999999'}},'女性':{'小花':{'愛好':'化妝','職業':'美容師'}}}

㈤ python 中使用字典隨機生成三個有十個元素的數組范圍1,100把三個合並成一個挑出三個合並成一個,挑出奇偶

沒有鍵值對應就不該用『字典』,可以用與字典同為{}花括弧的set數集。
py3.x代碼
import random
def randomlist():
s=set()
while len(s)<10: #保證有10個不同數
s.add(random.randint(1,100))
return s
def together(l):
return list(l[0])+list(l[1])+list(l[2])
def get_odd_even(l):
o,e=[],[]
for i in l:
if i%2==0: e.append(i)
else: o.append(i)
return [o,e]
def list_main():
list1=randomlist()
list2=randomlist()
list3=randomlist()
totallist = together([list1, list2, list3])
print(totallist)
ji, ou = get_odd_even(totallist)
print('奇數'+repr(ji))
print('偶數'+repr(ou))
list_main()

==========
>>>
{64, 65, 66, 7, 74, 11, 14, 16, 81, 18, 83, 20, 87, 25, 90, 28, 96, 38, 39, 43, 47, 48, 51, 56, 57, 60, 63}
奇數[65, 7, 11, 81, 83, 87, 25, 39, 43, 47, 51, 57, 63]
偶數[64, 66, 74, 14, 16, 18, 20, 90, 28, 96, 38, 48, 56, 60]

㈥ python 生成包含100個兩位數隨機整數的元組

#!usr/bin/python
#-*-coding:utf-8-*-
#python2.7

#分解需求
#1.生成2位數隨機數那麼就是random.randint(10,99)
#2.生成100個那麼就是foriinrange(100)
importrandom
random_tuple=tuple(random.randint(10,99)foriinrange(100))
printrandom_tuple
#字典dict_num={'數字':'出現的次數'}
dict_num={}
foriinrandom_tuple:
ifdict_num.get(i):
dict_num[i]+=1
else:
dict_num[i]=1
printdict_num

㈦ python怎麼隨機取列表的值

第一步:

我分析如果從一堆數里隨機抽取幾個,並且按原來的順序輸出的話,那麼至少要隨機兩次才能完成,第一次隨機的值是確定隨機幾個數,第二次隨機是確定隨機的值。

第二步:

隨機抽取幾個可以用random.randint(1,n)這個函數來實現,這個n代表所要隨機列表的長度。

第三步:

上一步出來一個數決定此次隨機出幾個值出來,現在假定是n,再次隨機就是從列表裡隨機抽取n個值這個可以用random.sample(dict,n)這個方法實現,這個函數可以傳入一個字典,和一個數字返回一個列表。

第四步:

得到的結果需要按原來的順序輸出,那麼存儲就需要考慮用dict了,因為字典的k-v特性可以實現找到原來的順序,我具體的實現如下:

importrandom

#random_number(a)函數的功能傳入一個數,返回1到這個數的隨機數
defrandom_number(a):
returnrandom.randint(1,a)
#print(random_number(4))

#random_list(a,b)函數的功能,傳入一個字典a,和一個數值b,
#1<=b<=a的長度,返回一個擁有b的個數值是a中的key值的list
defrandom_list(a,b):
returnrandom.sample(list(a),b)
a={1:'a',2:'j',3:'g',4:'h',5:'k',6:'i',7:'l',8:'f',9:'v',10:'b',11:2,12:5,13:'x'}
b=len(a)
#print(random_list(a,b))

#random_dictvalue函數的功能,傳入一個字典a和一個列表b,返回以b為key,a中對應的value的值
defrandom_dictvalue(a,b):
b.sort()
foriinb:
print(a.get(i),end='')

print(random_dictvalue(a,random_list(a,random_number(b))))
#result
>>>================================RESTART================================
>>>
afNone
>>>================================RESTART================================
>>>
giNone
>>>================================RESTART================================
>>>
ajhlvb25xNone

㈧ python dict怎麼實現的

Python中dict對象是表明了其是一個原始的Python數據類型,按照鍵值對的方式存儲,其中文名字翻譯為字典,顧名思義其通過鍵名查找對應的值會有很高的效率,時間復雜度在常數級別O(1).dict底層實現(推薦學習:Python視頻教程)
在Python2中,dict的底層是依靠哈希表(Hash Table)進行實現的,使用開放地址法解決沖突.
所以其查找的時間復雜度會是O(1).
Dict的操作實現原理(包括插入、刪除、以及緩沖池等)
首先介紹:PyDictObject對象的元素搜索策略:
有兩種搜索策略,分別是lookdict和lookdict_string,lookdict_string就是lookdict在對於PyStringObject進行搜索時的特殊形式,那麼通用的搜索策略lookdict的主要邏輯是:
(1)對第一個entry的查找:
a)根據hash值獲得entry的索引
b)若entry處於unused態,則搜索結束;若entry所指向的key與搜索的key相同,則搜索成功
c)若當前entry處於mmy態,則設置freeslot(這里的freeslot是可以返回作為下一個立即可用的地址來存儲entry)
d)檢查Active態的entry,若其key所指向的值與搜索的值相同,則搜索成功
(2)對剩餘的探測鏈中的元素的遍歷查找:
a)根據所採用的探測函數,獲得探測鏈上的下一個待檢查的entry
b)檢查到一個unused態的entry,表明搜索失敗:
如果freeslot不為空,則返回freeslot;否則返回unused態的entry
c)檢查entry的key與所搜索的key的引用是否相同,相同則搜索成功,返回entry
d)檢查entry的key與所搜索的key的值是否相同,相同則搜索成功,返回entry
e)遍歷過程中,發現mmy態的entry,且freeslot未設置,則設置freeslot
接下來是:PyDictObject對象的元素插入與刪除的策略:
需要首先用到搜索策略,搜索成功,則直接將值進行替換,搜索失敗,返回unused態或mmy態的entry,設置key、value和hash值,並且根據目前插入的元素情況進行ma_table的大小的調整(調整的依據就是裝載率,根據是否大於2/3來進行調整);刪除也是類似,先計算hash值,然後搜索相應的entry,搜索成功,刪除entry中維護的元素,將entry從Active態修改為mmy態

在PyDictObject的實現過程中,會用到緩沖池,在PyDictObject對象被銷毀的時候,才開始接納被緩沖的PyDictObject對象,定義的緩沖池可接納的對象數量是80個,創建新PyDictObject對象的時候,如果緩沖池中有,則可以直接從緩沖池中取出使用
更多Python相關技術文章,請訪問Python教程欄目進行學習!以上就是小編分享的關於python dict怎麼實現的的詳細內容希望對大家有所幫助,更多有關python教程請關注環球青藤其它相關文章!

㈨ python的dict操作復雜度有標准嗎

字典(dict)

下列字典的平均情況基於以下假設:
1. 對象的散列函數足夠擼棒(robust),不會發生沖突。
2. 字典的鍵是從所有可能的鍵的集合中隨機選擇的。

小竅門:只使用字元串作為字典的鍵。這么做雖然不會影響演算法的時間復雜度,但會對常數項產生顯著的影響,這決定了你的一段程序能多快跑完。

操作平均情況最壞情況復制[注2]O(n)O(n)取元素O(1)O(n)更改元素[注1]O(1)O(n)刪除元素O(1)O(n)遍歷[注2]O(n)O(n)

註:
[1] = These operations rely on the 「Amortized」 part of 「Amortized Worst Case」. Indivial actions may take surprisingly long, depending on the history of the container.

[2] = For these operations, the worst case n is the maximum size the container ever achieved, rather than just the current size. For example, if N objects are added to a dictionary, then N-1 are deleted, the dictionary will still be sized for N objects (at least) until another insertion is made.

㈩ PYTHON:在Dictionary中,如何隨機提取key和value

from random import choice

d = dict(a=3, b=4, c=5)
print d[choice(d.keys())]

熱點內容
美嘉演算法口訣 發布:2025-05-16 06:03:15 瀏覽:951
c程序編譯連接 發布:2025-05-16 06:02:36 瀏覽:963
腳本魔獸 發布:2025-05-16 06:01:52 瀏覽:329
文件夾python 發布:2025-05-16 06:01:43 瀏覽:626
電腦我的世界伺服器游戲幣 發布:2025-05-16 05:27:25 瀏覽:487
索尼手機為什麼不能用安卓10 發布:2025-05-16 05:18:46 瀏覽:784
蔚來es6選擇哪些配置實用 發布:2025-05-16 05:18:05 瀏覽:130
小米如何掃碼wifi密碼 發布:2025-05-16 05:13:38 瀏覽:807
樓層密碼是什麼意思 發布:2025-05-16 05:13:37 瀏覽:13
創建文件夾失敗 發布:2025-05-16 05:12:59 瀏覽:396