c# - 如何在 Python 中生成 2 位整数的结构化列表?
问题描述
我试图在 Python 中复制附加的 C# 代码,但不幸的是,我对 Python 的了解比对前者的了解要少得多。该代码实质上会生成 2 个字符/数字值的列表,例如 aa、ab、ac、ad 等。它包括 AZ、az 和 0-9 的组合。
我查看了 django.utils.crypto 模块,但这会创建一个随机输出,并且我的 C# 代码的输出在运行时给出了确切的组合数量。这是我对 Django 模块的尝试:
get_random_string(length=2,
allowed_chars=u'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789')
我尝试过的其他选项做类似的事情,所以我有点茫然。我知道 Python 的基础知识,但不幸的是,我还没有找到足够的能力在 Python 中复制我的 C# 代码。C# 代码:
var alpha =
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
var q = alpha.Select(x => x.ToString());
int size = 2;
for (int i = 0; i < size - 1; i++)
q = q.SelectMany(x => alphabet, (x, y) => x + y);
foreach (var item in q)
Console.WriteLine(item);
转换为 python,该函数应该生成大约 62^2 个 2 位整数值的组合。
解决方案
这是一个例子
alpha = 'abc'
from itertools import permutations, combinations_with_replacement
[''.join(i) for i in list(set(combinations_with_replacement(alpha, 2)) | set(permutations(alpha, 2)))]
# Output -> ['ab', 'ba', 'aa', 'cc', 'bb', 'cb', 'ac', 'ca', 'bc'] which is 3^2
现在alpha
按照@Adam Feor 在评论中的建议创建
import string
alpha = string.ascii_letters + string.digits
print(alpha)
Output -> abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
推荐阅读
- twitter-bootstrap-3 - 如何让 Bootstrap 3 和 Ant Design 3 共存
- angular - 如何在后台启用离子通知?
- wagtail - 如何在 RawHTMLBlock 字段中插入图像,即 blocks.RawHTMLBlock(icon='code', label='HTML')
- laravel - 您可以从查询构建器中删除子句吗?
- javascript - 我有 2 个按钮,但我只希望其中一个来检查必填字段,但是如何?
- php - 处理长请求 ajax 到 php
- java - 如何通过 ajax 调用显示 Java 对象
- lua - 在 Lua 中将索引表转换为键表
- python - python .exe 无法正常工作
- nginx - 尝试打开 HTTPS 时 Safari 上的 nsposixerrordomain:100 错误