當前位置:首頁 » 編程語言 » python字典初始化

python字典初始化

發布時間: 2022-08-01 07:19:48

A. python字典中如何創建字典

python---創建字典的方式
1、用{}創建字典
代碼:
x = {"a":"1", "b":"2"}
print x
輸出:
{'a': '1', 'b': '2'}
2、用內置函數dict()
(1)、入參為類似a="1"的鍵值對
代碼:
x = dict(a="1", b="2")
print x
輸出:
{'a': '1', 'b': '2'}
(2)、入參為一個元組,元組內部是一系列包含兩個值的元組,例如(("a", "1"), ("b", "2"))
代碼:
x = dict((("a", "1"), ("b", "2")))
print x
輸出
{'a': '1', 'b': '2'}
(3)、入參為一個元組,元組內部是一系列包含兩個值的列表,例如(["a", "1"], ["b", "2"])
代碼:
x = dict((["a", "1"], ["b", "2"]))
print x
輸出:
{'a': '1', 'b': '2'}
(4)、入參為一個列表,列表內部是一系列包含兩個值的元組,例如[("a", "1"),("b", "2")]
代碼:
x = dict([("a", "1"),("b", "2")])
print x
輸出:
{'a': '1', 'b': '2'}
(5)、入參為一個列表,列表內部是一系列包含兩個值的列表,例如[["a", "1"],["b", "2"]]
代碼:
x = dict([["a", "1"],["b", "2"]])
print x
輸出:
{'a': '1', 'b': '2'}
注意:
對於a="1"的方式初始化字典,字典的key只能為字元串,並且字元串不用加引號
對於dict內置函數初始化當入參是一個元組時,例如1)、2),元組內部的兩元素元組或者列表至少為兩個,否則會出錯
3、用戶fromkeys方法創建字典
代碼:
dict.fromkeys(("a", "b"), 1)
print x
輸出:
{'a': 1, 'b': 1}
入參可以的第一個參數是一個列表或者元組,里邊的值為key,第二個參數是所有key的value值

B. python 字典問題

letterCounts[letter] = letterCounts.get (letter, 0) + 1

這個是計數的常見寫法,意思是如果letter沒有在字典里存在,那麼就返回0,這個0相當於一個初始化的值.
在比較復雜的初始化默認值個人建議應該使用collections.defaultdict來替代字典.
如果改一下,可以變成

import collections

letterCounts = collections.defaultdict( int )
for letter in "Mississippi":
letterCounts[ letter ] += 1

print( letterCounts )

C. python中字典的使用方法怎麼樣的

字典理解如下
另一個非常有用的 Python 內建數據類型是 字典 (參見 Mapping Types — dict )。字典在某些語言中可能稱為 聯合內存 ( associative memories )或 聯合數組 ( associative arrays )。序列是以連續的整數為索引,與此不同的是,字典以 關鍵字 為索引,關鍵字可以是任意不可變類型,通常用字元串或數值。如果元組中只包含字元串和數字,它可以作為關鍵字,如果它直接或間接的包含了可變對象,就不能當作關鍵字。不能用列表做關鍵字,因為列表可以用索引、切割或者 append() 和 extend() 等方法改變。
理解字典的最佳方式是把它看作無序的鍵: 值對 (key:value 對)集合,鍵必須是互不相同的(在同一個字典之內)。一對大括弧創建一個空的字典: {} 。初始化列表時,在大括弧內放置一組逗號分隔的鍵:值對,這也是字典輸出的方式。
字典的主要操作是依據鍵來存儲和析取值。也可以用 del 來刪除鍵:值對(key:value)。如果你用一個已經存在的關鍵字存儲值,以前為該關鍵字分配的值就會被遺忘。試圖從一個不存在的鍵中取值會導致錯誤。
對一個字典執行 list(d.keys()) 將返回一個字典中所有關鍵字組成的無序列表(如果你想要排序,只需使用 sorted(d.keys()) )。[2] 使用 in 關鍵字(指Python語法)可以檢查字典中是否存在某個關鍵字(指字典)。

D. python 用fromkes()初始化字典,為什麼字典還是空的

YthonufROMkes初始化自檢的話,它的特點是空的,可能是因為它這個裡面並沒有過多的,就就就在它這個一個詞語的一個解釋,或者是他並沒有過多的去記載他的這個一個諧音字吧。

E. python中初始化字典,接受一個元組會出現這個問題:

dictionary update sequence element #0 has length 1; 2 is required
意思是更新字典的序列元素的長度需要為2,dict(a)這樣是把序列a中的元素一個個傳進去,沒有成對,改成這樣:dict((a,))

F. 我怎麼才能把python的字典裡面的數據按照原始順序遍歷出來

Python裡面字典的健-值對本來就是無序的,一個無序的東西你要它按順序遍歷,是有矛盾的。你的那個「按照順序初始化」的說法就有問題。

G. 在python中字典和集合是用一對大括定號作為界符字典的每個元素有兩部分組成,是什麼鍵和什麼值

mydict = {} # 字典初始化
mydict['one'] = "This is one"
mydict[2] = "This is two"
mydict[3] = "This is three"

print(mydict) # 輸出完整的字典 {'one': 'This is one', 2: 'This is two', 3: 'This is three'}
print(mydict.keys()) # 輸出所有鍵 ['one', 2, 3]
print(mydict.values()) # 輸出所有值 ['This is one', 'This is two', 'This is three']

H. python創建字典有多少種方法

兩種
法一使用賦值符號直接創建字典
法二使用內置函數dict創建字典

I. python 的一個關於字典的問題

"""Invert the dictionary
"""
freq= {}

#這段程序的作用是將用戶名,次數保存的數據轉換成
#次數,用戶名的保存方式

for (name, times) in count.items():
if times in freq:
#times已經存在,表示已經不是第一用戶,freq[times]已經
#初始化為list,因此這里可以調用append介面記錄新的用戶

freq[times].append(name)
else:
#不存在的話,則表示這個是第一個用戶,因此需要初始化為
#[name],不然的話,上面就不能調用append介面了

freq[times] = [name] # why it's [name]????????

#print
#所有的數據都已經轉換完成,這里是顯示部分
#首先對次數按照從低往高進行排序

for key in sorted(freq):
print key
#然後列印保存的用戶名即可

for name in freq[key]:
print " ", name
"""

J. Python中字典創建、遍歷、添加等實用操作技巧合集

欄位是Python是字典中唯一的鍵-值類型,是Python中非常重要的數據結構,因其用哈希的方式存儲數據,其復雜度為O(1),速度非常快。下面列出字典的常用的用途.
一、字典中常見方法列表
代碼如下:
#方法
#描述
-------------------------------------------------------------------------------------------------
D.clear()
#移除D中的所有項
D.()
#返回D的副本
D.fromkeys(seq[,val])
#返回從seq中獲得的鍵和被設置為val的值的字典。可做類方法調用
D.get(key[,default])
#如果D[key]存在,將其返回;否則返回給定的默認值None
D.has_key(key)
#檢查D是否有給定鍵key
D.items()
#返回表示D項的(鍵,值)對列表
D.iteritems()
#從D.items()返回的(鍵,值)對中返回一個可迭代的對象
D.iterkeys()
#從D的鍵中返回一個可迭代對象
D.itervalues()
#從D的值中返回一個可迭代對象
D.keys()
#返回D鍵的列表
D.pop(key[,d])
#移除並且返回對應給定鍵key或給定的默認值D的值
D.popitem()
#從D中移除任意一項,並將其作為(鍵,值)對返回
D.setdefault(key[,default])
#如果D[key]存在則將其返回;否則返回默認值None
D.update(other)
#將other中的每一項加入到D中。
D.values()
#返回D中值的列表
二、創建字典的五種方法
方法一:
常規方法
代碼如下:
#
如果事先能拼出整個字典,則此方法比較方便
>>>
D1
=
{'name':'Bob','age':40}
方法二:
動態創建

代碼如下:
#
如果需要動態地建立字典的一個欄位,則此方法比較方便
>>>
D2
=
{}
>>>
D2['name']
=
'Bob'
>>>
D2['age']
=
40
>>>
D2
{'age':
40,
'name':
'Bob'}
方法三:
dict--關鍵字形式
代碼如下:
#
代碼比較少,但鍵必須為字元串型。常用於函數賦值
>>>
D3
=
dict(name='Bob',age=45)
>>>
D3
{'age':
45,
'name':
'Bob'}
方法四:
dict--鍵值序列
代碼如下:
#
如果需要將鍵值逐步建成序列,則此方式比較有用,常與zip函數一起使用
>>>
D4
=
dict([('name','Bob'),('age',40)])
>>>
D4
{'age':
40,
'name':
'Bob'}

代碼如下:
>>>
D
=
dict(zip(('name','bob'),('age',40)))
>>>
D
{'bob':
40,
'name':
'age'}
方法五:
dict--fromkeys方法#
如果鍵的值都相同的話,用這種方式比較好,並可以用fromkeys來初始化

代碼如下:
>>>
D5
=
dict.fromkeys(['A','B'],0)
>>>
D5
{'A':
0,
'B':
0}
如果鍵的值沒提供的話,默認為None
代碼如下:
>>>
D3
=
dict.fromkeys(['A','B'])
>>>
D3
{'A':
None,
'B':
None}
三、字典中鍵值遍歷方法

代碼如下:
>>>
D
=
{'x':1,
'y':2,
'z':3}
#
方法一
>>>
for
key
in
D:
print
key,
'=>',
D[key]
y
=>
2
x
=>
1
z
=>
3
>>>
for
key,
value
in
D.items():
#
方法二
print
key,
'=>',
value
y
=>
2
x
=>
1
z
=>
3
>>>
for
key
in
D.iterkeys():
#
方法三
print
key,
'=>',
D[key]
y
=>
2
x
=>
1
z
=>
3
>>>
for
value
in
D.values():
#
方法四
print
value
2
1
3
>>>
for
key,
value
in
D.iteritems():
#
方法五
print
key,
'=>',
value
y
=>
2
x
=>
1
z
=>
3
Note:用D.iteritems(),
D.iterkeys()的方法要比沒有iter的快的多。
四、字典的常用用途之一代替switch
在C/C++/Java語言中,有個很方便的函數switch,比如:
代碼如下:
public
class
test
{
public
static
void
main(String[]
args)
{
String
s
=
"C";
switch
(s){
case
"A":
System.out.println("A");
break;
case
"B":
System.out.println("B");
break;
case
"C":
System.out.println("C");
break;
default:
System.out.println("D");
}
}
}
在Python中要實現同樣的功能,
方法一,就是用if,
else語句來實現,比如:

代碼如下:
from
__future__
import
division
def
add(x,
y):
return
x
+
y
def
sub(x,
y):
return
x
-
y
def
mul(x,
y):
return
x
*
y
def
div(x,
y):
return
x
/
y
def
operator(x,
y,
sep='+'):
if
sep
==
'+':
print
add(x,
y)
elif
sep
==
'-':
print
sub(x,
y)
elif
sep
==
'*':
print
mul(x,
y)
elif
sep
==
'/':
print
div(x,
y)
else:
print
'Something
Wrong'
print
__name__
if
__name__
==
'__main__':
x
=
int(raw_input("Enter
the
1st
number:
"))
y
=
int(raw_input("Enter
the
2nd
number:
"))
s
=
raw_input("Enter
operation
here(+
-
*
/):
")
operator(x,
y,
s)
方法二,用字典來巧妙實現同樣的switch的功能,比如:

代碼如下:
#coding=gbk
from
__future__
import
division
x
=
int(raw_input("Enter
the
1st
number:
"))
y
=
int(raw_input("Enter
the
2nd
number:
"))
def
operator(o):
dict_oper
=
{
'+':
lambda
x,
y:
x
+
y,
'-':
lambda
x,
y:
x
-
y,
'*':
lambda
x,
y:
x
*
y,
'/':
lambda
x,
y:
x
/
y}
return
dict_oper.get(o)(x,
y)
if
__name__
==
'__main__':
o
=
raw_input("Enter
operation
here(+
-
*
/):
")
print
operator(o)

熱點內容
php配置偽靜態 發布:2025-01-23 21:31:46 瀏覽:761
mud源碼下載 發布:2025-01-23 21:19:46 瀏覽:134
反恐精英15游戲伺服器ip 發布:2025-01-23 21:13:38 瀏覽:850
起床的戰爭玩什麼伺服器 發布:2025-01-23 21:03:06 瀏覽:141
企業級安卓手機防毒軟體哪個好 發布:2025-01-23 20:59:28 瀏覽:243
資料庫精美 發布:2025-01-23 20:37:05 瀏覽:235
mysql怎麼編譯驅動 發布:2025-01-23 20:35:15 瀏覽:467
修改資料庫的語句是 發布:2025-01-23 20:26:17 瀏覽:762
linuxping域名 發布:2025-01-23 20:24:34 瀏覽:479
神經網路演算法應用 發布:2025-01-23 20:18:36 瀏覽:219