小编Pat*_*ick的帖子

如何在python中将字典项作为函数参数传递?

我的代码

第一档:

data = {'school':'DAV', 'standard': '7', 'name': 'abc', 'city': 'delhi'}
my_function(*data)
Run Code Online (Sandbox Code Playgroud)

第二档:

my_function(*data):
    schoolname  = school
    cityname = city
    standard = standard
    studentname = name
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,只传递了"data"字典的键my_function(),但我希望键值对能够通过.怎么纠正这个?

我想要my_function()像这样修改

my_function(school='DAV', standard='7', name='abc', city='delhi')
Run Code Online (Sandbox Code Playgroud)

这是我的要求,根据这个给出答案

编辑:字典键更改为标准

python dictionary function python-2.7

65
推荐指数
3
解决办法
15万
查看次数

最简单的方法是打印由16位分割的64位十六进制数据

我想以下列格式打印64位十六进制数据:

0x1111_2222_3333_4444
Run Code Online (Sandbox Code Playgroud)

我可以想到以下几点:

#define FIRST_MASK  0xFFFF000000000000
#define SECOND_MASK 0x0000FFFF00000000
#define THIRD_MASK  0x00000000FFFF0000
#define FOURTH_MASK 0x000000000000FFFF

val = 0x1111222233334444 
printf("0x%04x_%04x_%04x_%04x\n", \
       (unsigned int)((val & FIRST_MASK)  >> 48),
       (unsigned int)((val & SECOND_MASK) >> 32),
       (unsigned int)((val & THIRD_MASK)  >> 16),
       (unsigned int)(val & FOURTH_MASK)
);
Run Code Online (Sandbox Code Playgroud)

是否有简单(或可能更干净)的方法来实现这一目标?

c

4
推荐指数
1
解决办法
96
查看次数

如何在python中知道reactor是否正在运行?

如何知道反应堆状态(运行与否)?

我试过这个(从谷歌搜索):

from twisted.internet import reactor
if reactor.callWhenRunning(lambda: None) is not None: 
    # do some work
Run Code Online (Sandbox Code Playgroud)

它工作,但这似乎很奇怪.

有什么其他方法可以做到这一点?

python twisted reactor python-2.7 twisted.internet

3
推荐指数
1
解决办法
3147
查看次数

配置或库shell脚本需要shebang吗?

如果我在我的主脚本(有shebang)中包含了一个配置文件(shell脚本中的变量定义)或库文件(具有常见的函数定义),那么我是否还需要一个shebang用于该配置shell脚本?

编辑:我使用包含配置文件.或源主文件包含#!/ bin/sh shebang.

bash shell shebang

2
推荐指数
1
解决办法
359
查看次数

使用sed或awk从具有特定单词的行中提取第n行?

终端上的hg标签输出:

tip                              596:bb834c42599f
P_SONY_1004.21.15                595:db10157b1515
P_PHILIPS_1000.21.2              590:67b7e71f76b4
P_SONY_1004.21.2                 539:2b50e157e217
P_SONY_10015.21.2                533:15160fyafd88
P_creative.21.1                  512:cdac14a00df4
P_SONY_1004.15.5                 500:21affdf1bbfd
P_SONY_1002.15.5                 466:a7bad21505ca
P_SONY_1002.15.15                424:efbe741500bb
P_creative.15.2                  420:415c415a65fa
P_SONY_1004.15.1                 414:24f1ab415c15
P_PHILIPS_1000.15.1              412:5d151556c288
P_SONY_1002.15.1                 410:bf1f5af64ebb
P_SONY_1002.15.1                 390:152e0f4ec815
P_creative.8.2                   370:ecdc64f8a4b4
P_creative.8.1                   350:5b8e81bd725a
P_creative.7.5                   343:221d5c15efa6
P_creative.6.1                   222:62115db1e015
Run Code Online (Sandbox Code Playgroud)

从这个输出我必须从包含"创意"字的行中提取第二行

我试过这个:

hg tags | awk '/creative/{print $1;}'
Run Code Online (Sandbox Code Playgroud)

它的输出:

P_creative.21.1
P_creative.15.2
P_creative.8.2
P_creative.8.1
P_creative.7.5
P_creative.6.1
Run Code Online (Sandbox Code Playgroud)

但我只想把它作为输出:P_creative.15.2

如何更改命令以将"P_creative.15.2"作为输出,如何在shell脚本中使用它?

我也可以从中提取"15.2"吗?

regex bash shell awk sed

0
推荐指数
1
解决办法
271
查看次数

使用for循环迭代列表

码:

d = ["my", "name", "is", "abc"]
a  = {x: x*2 for x in d}
print a
Run Code Online (Sandbox Code Playgroud)

输出:

{'is': 'isis', 'abc': 'abcabc', 'my': 'mymy', 'name': 'namename'}
Run Code Online (Sandbox Code Playgroud)

输出不是"d"列表的顺序.

我也试过这个:

a = collections.Ordered({x: x*2 for x in d})
Run Code Online (Sandbox Code Playgroud)

但无法得到预期的结果.

如何生成一个字典,其元素的排序与"d"列表相同?

python for-loop python-2.7

0
推荐指数
1
解决办法
55
查看次数