当前位置:首页 » 编程语言 » python返回字典

python返回字典

发布时间: 2022-08-03 17:51:01

⑴ 请教,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中~

热点内容
如何申请i7服务器地址 发布:2025-01-23 04:42:15 浏览:845
浏览器内核源码 发布:2025-01-23 04:41:34 浏览:659
精英版缤智少了些什么配置 发布:2025-01-23 04:41:30 浏览:356
编写c编译器 发布:2025-01-23 04:41:30 浏览:968
可以解压war包的编译软件 发布:2025-01-23 04:38:28 浏览:986
vivo手机有编译功能吗 发布:2025-01-23 04:31:57 浏览:568
自己架设云手机服务器 发布:2025-01-23 04:31:17 浏览:949
gcc命令行编译的方法 发布:2025-01-23 04:30:31 浏览:397
我的云服务器地址近期价格 发布:2025-01-23 04:29:05 浏览:625
js预览上传图片 发布:2025-01-23 04:28:54 浏览:407