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中~