我有一个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)
这件事有两个问题:
如果列表为空,或者dict查找失败,程序将失败,因为randrange有(0,0)作为参数,这会导致错误
很多时候,两个randrange()调用都会生成相同的数字,尤其是当列表很小时.这将返回一个空列表.例如a_list [5:5]
那么,处理上述案例的随机子列表的最佳方法是什么?另外,我不关心订购.一切正常.每次for循环开始时,我只想要一个完全随机的子列表0,1 ...直到len(a_list)元素.
如果列表可以在其他一些可以容纳类似元素的数据结构中进行更改,那么这对我也有用.
假设我想实现浏览器历史功能。如果我第一次访问该 url,它会进入历史记录,如果我再次访问同一页面,它会出现在历史记录列表中。假设我只显示前 20 个站点,但我可以选择查看上个月、上周等的历史记录。
最好的方法是什么?我会使用哈希图来插入/检查它是否更早被访问过,但是我如何有效地对最近访问过的进行排序,我不想使用树图或树集。另外,我如何存储周和月的历史记录。浏览器关闭时是否写入磁盘?当我点击清除历史记录时,数据结构是如何被删除的?
我正在尝试解析以下格式的字符串:
text="some random string <inAngle> <anotherInAngle> [-option text] [-anotherOption <text>] [-option (Y|N)]"
Run Code Online (Sandbox Code Playgroud)
我想将字符串分成三部分。
如果我使用正则表达式
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 个单词
我刚刚开始使用 pyOpenSSL 库来生成证书和读取现有的证书。但是,我想在我的程序中生成一个 p12/pfx 包,而不是标准的 pem 文件。我无法为此找到合适的 API。仅用于转储 pkcs12 对象。谁能让我知道如何做到这一点?
谢谢
我尝试做的是连接到远程服务器,从本地计算机上的文件中读取内容并将其发送到服务器.然后捕获服务器响应并保存.我把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)