小编Sel*_*cuk的帖子

如何从Python中的括号和花括号中获取数据?

我正在尝试使用py-web-search模块从谷歌搜索中提取信息.拉动搜索的结果就是这个(如Github中所述):

{
    'url': '...',
    'expected_num': 5,
    'received_num' : 5, # There will be a difference in case of insufficient results
    'start': 2,
    'search_engine': 'google',
    'total_results': ...,
    'results':
    [
        {
            'link': '...',
            'link_text': '...',
            'link_info': '...',
            'related_queries': [...],
            'additional_links':
            {
                linktext: link,
                ...
            }
        },
        ...
    ]
}
Run Code Online (Sandbox Code Playgroud)

我似乎无法弄清楚如何打印出"链接"数据.

result=Google.search(query='hello world', num=5, start=0, country_code="es")
data=result['results']
print(data)
Run Code Online (Sandbox Code Playgroud)

这是我的测试代码,只能打印[].有什么建议?

python

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

为什么使用此代码可以生成随机密码?

这里有一个用于生成密码的代码段,我有2个关于此的问题,请问你能分享一下如何理解?

  1. urandom(6),来自urandom的帮助说,返回适合加密使用的n个随机字节,也就是说,它会返回6个字节,它是6个ASCII吗?

  2. ord(c) ,获取上面的字节的十进制基数,为什么这里转移到十进制基数?

帮助urandom:

def urandom(n): # real signature unknown; restored from __doc__
    """
    urandom(n) -> str

    Return n random bytes suitable for cryptographic use.
    """
    return ""
Run Code Online (Sandbox Code Playgroud)

Python脚本:

from os import urandom
letters = "ABCDEFGHJKLMNPRSTUVWXYZ"
password = "".join(letters[ord(c) % len(letters)] for c in urandom(6))
Run Code Online (Sandbox Code Playgroud)

python random passwords cryptography

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

当我从同一个函数中获取键和值时,使用字典理解构建一个 dict

假设我有一个复杂的函数get_stuff,它接受一个 int 并返回一个元组,第一个元素的类型是 str。下面的示例具有相同的行为,但假设实际函数更复杂并且不能轻易地一分为二:

def get_stuff(x):
    return str(5*x),float(3*x)
Run Code Online (Sandbox Code Playgroud)

我想要的是构建一个 dict,其 (key,value) 对是在特定整数集上调用时 get_stuff 的结果。一种方法是:

def get_the_dict(set_of_integers):
    result = {}
    for i in set_of_integers:
        k,v = get_stuff(i)
        result[k] = v
    return result
Run Code Online (Sandbox Code Playgroud)

我宁愿为此使用 dict comprehension,但我不知道是否可以在理解中拆分该对以分别捕获键和值。

def get_the_dict_with_comprehension(set_of_integers):
    return {get_stuff(i) for i in set_of_integers} #of course this doesn't work
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

python dictionary-comprehension

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

如何在Python中获得2个字典列表的联合

我有2个列表,其中包含以下数据结构:

 array1:
 [{'student': {'name': 'abc'}, 'address': 'add_abc'}, 
  {'student': {'name': 'xyz'},  'address': 'add_xyz'}]

 array2:
 [{'student': {'name': 'abc'}, 'address': 'add_abc'}, 
  {'student': {'name': 'rst'},  'address': 'add_rst'}]
Run Code Online (Sandbox Code Playgroud)

我希望有一个array3上述2个列表的联合

 array3:
 [{'student': {'name': 'abc'}, 'address': 'add_abc'}, 
  {'student': {'name': 'rst'},  'address': 'add_rst'},
  {'student': {'name': 'xyz'},  'address': 'add_xyz'}]
Run Code Online (Sandbox Code Playgroud)

我怎么能用Python做到这一点?

python arrays

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

如果在for循环中使用esle,如何在单行中使用“继续”

我有一个 for 循环,其中有一个简单的单行 if 条件。我想在 else 部分使用 continue 选项。

这不起作用:

def defA() : 
    return "yes"
flag = False
for x in range(4) : 
    value = defA() if flag else continue
Run Code Online (Sandbox Code Playgroud)
                              ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

工作代码:

                              ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

python loops for-loop continue python-2.7

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

您如何使用另一个包含列表的列表订购包含列表的列表?

因此,我编写了一个快速的Python程序来基于文本文件创建霍夫曼树。到目前为止,一切都很好,除了我介绍产生的霍夫曼代码的方式。为了遵循惯例,我希望按照从最频繁到最不频繁的顺序显示它们。幸运的是,我还有另一个存储频率和对应字母的列表。该频率列表已经排序。我的问题是我不知道要使用哪个键来对第一个列表中的值进行排序。

frequencies = [[6, 's'], [4, 'e'], [4, 'l'], [3, ' '], [2, 'h'], [1, 'a']]
huffman_codes = [['s', '10'], ['h', '011'], ['e', '111'], [' ', '101'], ['l', '00'], ['a', '001']]
Run Code Online (Sandbox Code Playgroud)

我想要的是

[['s', '10'], ['e', '111'], ['l', '00'], [' ', '101'], ['h', '011'], ['a', '001']] 
Run Code Online (Sandbox Code Playgroud)

由于具有高频率的霍夫曼代码具有最短的长度代码,因此我尝试按它们的代码长度对其进行排序,但这并不一定是正确的,因为我的程序允许用户更改它们应以左侧的1还是0开头。为什么代码未排序是绘制霍夫曼树的本质。

python list

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

检查列表中的每个字符串(所有字符串)是否是另一个字符串中至少一个字符串中的子字符串

我很难检查 python 列表中的所有字符串是否是另一个 python 列表中任何字符串的子集。

示例:我想检查的每个字符串(所有字符串)list1是否至少包含在其中的一个字符串中list2,如果是,请执行某些操作。

list1 = ['tomato', 'onions','egg']
list2 = ['Two tomatos', 'two onions','two eggs','salsa']
Run Code Online (Sandbox Code Playgroud)

例如,在这个例子中,它会返回True.

python substring list subset python-3.x

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

Replace nth Substring With nth Strings of Lists

I have a string like so:

"initWithType:bundleIdentifier:uniqueIdentifier:"
Run Code Online (Sandbox Code Playgroud)

and two lists like so:

['long long', 'id', 'id']
['arg1', 'arg2', 'arg3']
Run Code Online (Sandbox Code Playgroud)

and want to end up with the string:

"initWithType:(long long)arg1 bundleIdentifier:(id)arg2 uniqueIdentifier:(id)arg3"
Run Code Online (Sandbox Code Playgroud)

As you may see, I effectively need to replace every nth semicolon with the nth string in each list (plus a little formatting with parentheses and a space).

我一直在尝试使用.format*拆包经营者,但都收效甚微。

python string format list python-3.x

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

有没有办法让条件语句成为我可以传递给 Python 循环的变量?

我想做类似的事情:

def myfunc(p1, p2, p3):
   time_step = 0
   if p1 <= 0
      while (p2 > 0 or p3 > 0)
         stuff that updates p2, p3
         timestep+=1
   else
      while (time_step < p1)
         stuff that updates p2, p3
         timestep+=1
Run Code Online (Sandbox Code Playgroud)

基本上,我希望能够让用户决定他们是否希望 while 循环运行直到 p2 和 p3 小于或等于 0,或者他们是否希望 while 循环运行到所需的 time_step。在任何一种情况下,“更新 p2、p3 的东西”都是完全相同的。但是,while 循环中的内容由很多行组成,我只会复制和粘贴“更新 p2、p3 的内容”。我觉得一定有更好的方法。

我希望以下方法可行:

def myfunc(p1, p2, p3):
   time_step = 0
   if p1 <= 0
      conditional_statement = (p2 > 0 or p3 > 0)
   else
      conditional_statement = (time_step < p1) …
Run Code Online (Sandbox Code Playgroud)

python while-loop conditional-statements

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

如何迭代字符串并对于每个字母(如果它在字典中)将该单词附加到 `syr_list` 的末尾

我有一本名为 to_nato 的字典,如下所示:

to_nato = {'a': 'alfa',
           'b': 'bravo',
           'c': 'charlie',
           'd': 'delta',
           'e': 'echo',
           'f': 'foxtrot',
           'g': 'golf',
           'h': 'hotel',
           'i': 'india'}
Run Code Online (Sandbox Code Playgroud)

我需要编写循环来迭代字符串"stateofny",对于每个字母,如果它在字典中,则将该单词附加到末尾syr_list

我正在尝试这个:

syr_str="stateofny"
syr_list=[]

for letter in syr_str:
    for key, value in zip(to_nato.keys(), to_nato.values()):
                if letter == key:
                   syr_list.append(value) 
print(syr_list)

Run Code Online (Sandbox Code Playgroud)

但它返回空列表。我究竟做错了什么?

python dictionary loops

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