小编use*_*093的帖子

从Python中的列表中提取随机子列表

我有一个python字典如下:

{'APPLE_PROVIDERS' : ["some", "provider","can","be", "null"],
  ....
}
Run Code Online (Sandbox Code Playgroud)

我想要做的是从密钥的列表(这是一个值)中获取一个随机子列表.不仅仅是一个元素,而是一个完全随机的子列表.这是我尝试过的:

a_list = a_dict.get('APPLE_PROVIDERS', "")
for item in a_list[randrange(0,len(a_list)) : randrange(0,len(a_list))]:
  ...do something.. 
Run Code Online (Sandbox Code Playgroud)

这件事有两个问题:

  1. 如果列表为空,或者dict查找失败,程序将失败,因为randrange有(0,0)作为参数,这会导致错误

  2. 很多时候,两个randrange()调用都会生成相同的数字,尤其是当列表很小时.这将返回一个空列表.例如a_list [5:5]

那么,处理上述案例的随机子列表的最佳方法是什么?另外,我不关心订购.一切正常.每次for循环开始时,我只想要一个完全随机的子列表0,1 ...直到len(a_list)元素.

如果列表可以在其他一些可以容纳类似元素的数据结构中进行更改,那么这对我也有用.

python random sublist

8
推荐指数
2
解决办法
8874
查看次数

用于排序浏览历史的数据结构

假设我想实现浏览器历史功能。如果我第一次访问该 url,它会进入历史记录,如果我再次访问同一页面,它会出现在历史记录列表中。假设我只显示前 20 个站点,但我可以选择查看上个月、上周等的历史记录。

最好的方法是什么?我会使用哈希图来插入/检查它是否更早被访问过,但是我如何有效地对最近访问过的进行排序,我不想使用树图或树集。另外,我如何存储周和月的历史记录。浏览器关闭时是否写入磁盘?当我点击清除历史记录时,数据结构是如何被删除的?

browser-history data-structures

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

Python RegEx 用于括号的精确匹配

我正在尝试解析以下格式的字符串:

 text="some random string <inAngle> <anotherInAngle> [-option text] [-anotherOption <text>] [-option (Y|N)]" 
Run Code Online (Sandbox Code Playgroud)

我想将字符串分成三部分。

  1. 只是“一些随机字符串”
  2. 仅在尖括号中的所有内容。IE inAngle 和anotherInAngle 上面。
  3. 方括号中的所有内容。

如果我使用正则表达式

re.findall(r'\[(.+?)\]', text)
Run Code Online (Sandbox Code Playgroud)

它在方括号内提供了我需要的一切。但是,如果我使用带有尖括号的相同 RegEx,

re.findall(r'<(.+?)>', text)
Run Code Online (Sandbox Code Playgroud)

它给出了在方括号内的尖括号内的文本。例如,上面的“文本”位于 [-anotherOption] 内。我不要那个。尖括号匹配的正则表达式应该只从上面返回“inAngle”“anotherInAngle”。它的正则表达式是什么?

另外我如何只获得第一部分,即“一些随机字符串”。此字符串可以有 2 或 3 个单词

python regex string

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

使用pyOpenSSL生成p12/pfx容器

我刚刚开始使用 pyOpenSSL 库来生成证书和读取现有的证书。但是,我想在我的程序中生成一个 p12/pfx 包,而不是标准的 pem 文件。我无法为此找到合适的 API。仅用于转储 pkcs12 对象。谁能让我知道如何做到这一点?

谢谢

pyopenssl ssl-certificate

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

套接字连接突然用代码141关闭

我尝试做的是连接到远程服务器,从本地计算机上的文件中读取内容并将其发送到服务器.然后捕获服务器响应并保存.我把GET命令放在一个文本文件中,我试着得到相同的结果.这是代码的一部分.我这样做是使用套接字和C.

if ( inet_pton(AF_INET,ip, &(nc_args->destaddr.sin_addr.s_addr)) <= 0 )
    printf("\n\t\t inet_pton error");


if (connect(sockfd, (struct sockaddr *) &nc_args->destaddr, sizeof(&nc_args->destaddr)) < 0)
{
    printf("\n\t\t Connection error");
    exit(1);
}
puts("\n\t\t Connection successful to ...");

// file parameter is taken from command line and passéd to this function

fp = fopen(file,"rb");
if ( fp == NULL)
{
    printf("\n\t\t File not found");
    exit(3);
}

else
{
    printf("\n\t\t Found file %s\n", file);

    fseek(fp, 0, SEEK_END);
    file_size = ftell(fp);
    rewind(fp);

    //allocate memory to the buffer dynamically

    buffer …
Run Code Online (Sandbox Code Playgroud)

c sockets

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