python返回字典
⑴ 請教,python web.py查詢資料庫返回的結果是列表還是字典
我常用pymssql連接M$SQL伺服器, 沒用過pyodbc, 但按理應該都差不多。
若用pymssql, 從資料庫中取數據的過程如下:
import pymssql
connect_setting = {
'host': '127.0.0.1',
'user': 'sa',
'password': '',
'database': 'master',
'charset': 'gb18030'
}
conn = pymssql.connect(**connect_setting)
curr = conn.cursor()
curr.execute("select list, name from nlist")
result = [(lst, name) for lst, name in curr]
curr.close()
conn.close()
關於"如何查詢,list的每個值在資料庫中對應的Name「
若庫表中的數據像下面的樣子:
id, name:
1, 'python'
2, 'perl'
3, 'c'
4, 'java'
且每行id是唯一值, 將從資料庫表中拿到的數據放到一個字典中:
curr.execute("select id, name from nlist")
dd = dict([(id, name) for id, name in curr])
lst = [1,2,3,4,5,6]
用dd進行轉換
[(i, dd.get(i)) for i in lst]
==>
[(1, 'python'), (2, 'perl'), (3, 'c'), (4, 'java'), (5, None), (6, None)]
or
[dd.get(i, i) for i in lst]
==>
['python', 'perl', 'c', 'java', 5, 6]
⑵ python3返回字典里出現最多的一個數
你寫了那麼多, 其實就是
#dict為內建函數,不建議作為變數名
deff(d):
returnmax(d.values())
這里返回的只是年份的最大值
⑶ python寫一個函數,函數可以支持接收任意內容(關鍵字傳參)並返回字典
#函數傳遞參數
def func_args( *vartuple ):
args = []
#任何傳入的參數都加入列表
for var in vartuple:
args.append(var)
return args
a = func_args("123","abc","ABC","000")
print(a)
⑷ python 字典的問題
題主你好,
寫在前面: 我先給題主舉個例子, 我先定義一個字典:
dict03 = {1:3, 5:7}
可以看出上面這個字典有兩個元素, 此時我們使用dict03.values()得到的結果為:
dict_values([3,7])
從上面這個結果可以看出, 字典的values方法,會將字典中的所有鍵值對的值生成一個列表, 作為dict_values()參數,並返回.
-----
上面沒有講到重點,只是作了一個引, 下面看到底問題出在哪了.
題主定義的dict03={0:[1,3,5,7]}, 這個字典, 其實只有一個鍵值對, 鍵是整數0,值是列表[1,3,5,7], 所以此時dict03.value()返回的值為 dict_values([[1,3,5,7]]), 重點就在這里, 注意,返回的是:
dict_values( [[ 1,3,5,7 ]] )
而不是
dict_values( [ 1,3,5,7 ] )
拋開前面這個dict_values, 也就是返回的是:
[[1,3,5,7]] 而不是 [1,3,5,7]
前者是含有一個元素的列表, 只不過這個元素本身也是一個列表;
後者是含有4個元素的列表, 每個元素都是整型數字;
而 x in y 這種形式中, 是看x是否存在於y中,
拿題主的代碼來說, 其實 i in dict03.values() 翻譯過來是:
5 in [[1,3,5,7]], 因為[[1,3,5,7]]這個列表就一個元素,為[1,3,5,7],所以5並不在[[1,3,5,7]]中,
如果翻譯過來是:
5 in [1,3,5,7],那麼我們得到的結果肯定是True, 因為[1,3,5,7]中有4個元素,而5恰在其中.
所以解決方法也就有了, 想辦法去掉[[1,3,5,7]]最外層的[].
代碼及測試截圖如下:
上圖中, 第一個紅框是將dict_values([[1,3,5,7]])轉換成 [[1,3,5,7]];
第二個紅框是將[[1,3,5,7]]轉換成[1,3,5,7];
此時最後一句print(5 in [1,3,5,7]) 也就得到了我們想要的結果True了.
-----
希望可以幫到題主, 歡迎追問.
⑸ python中字典常用的方法有哪些,分別有什麼作用
寫法:字典序列[key] = 值 ***字典為可變類型
常用方法:
1、# 新增字典中的數據
dict1 = {'name':'huu','age':20,'gender':'男'}
dict1['id'] = 133
print(dict1)
2、# 修改字典中的數據
dict1['name'] = 'xiauaiguai'
print(dict1)
3、刪除字典或刪除字典中指定鍵值對
del()/del:
dict1 = {'name':'huanghu','age':30,'gender':'男'}
# del(dict1) 直接將字典刪除了,運行報錯
del dict1['name']
print(dict1)
# del dict1[names] 刪除不存在的key,運行報錯
4、清空字典
clear():
dict1.clear() # 清空字典
print(dict1)
5、查找
key值查找
如果當前查找的key存在則返回對應的值,否則則報錯
函數查找
get():如果當前查找的key不存在則返回第二個參數值(默認值),
如果省略第二個參數則返回 None
key()
dict1 = {'name':'huhu','age':20,'gender':'男'}
print(dict1['name']) # huhu
print(dict1['id']) # 報錯
# 1, get()查找
print(dict1.get('name')) # huanghu
print(dict1.get('id',133)) # 133--如果當前查找的key不存在則返回第二個參數值(默認值)
print(dict1.get('id')) # None--如果省略第二個參數則返回 None
# 2, keys() 查找字典中所有的key,返回可迭代對象
print(dict1.keys()) # dict_keys(['name', 'age', 'gender'])
# 3,values() 查找字典中所有的values,
print(dict1.values()) # dict_values(['huanghu', 30, '男'])
# 4, items() 查找字典中所有的鍵值對,返回可迭代對象,裡面的數據是元組,
元組數據1是字典中的key,元組數據2是字典key對應的值
print(dict1.items()) # dict_items([('name', 'huahu'), ('age', 20), ('gender', '男')])
⑹ python中怎麼取出字典的鍵
舉例如下:
1、新增python文件,testdictkey.py;
⑺ Python 返回字典報錯 x是一個字典,如果我用返回就會報錯,而用列印就正常輸出,為什麼呢
return是用於函數返回值用的,你只有一個for循環,沒有函數,所以就報錯了。
⑻ python多重字典返回
為啥用字典去表示呢。。。無窮嵌套了
用class去表示節點node,然後left,right,index,value都做為屬性。
然後所有節點按照前/中/後序遍歷放進list中~