python - 需要将 2000 个变量组合到一个列表中以在 for 循环中使用
问题描述
我正在尝试使用 for 循环在 selenium 中循环 2000 次迭代。我已经创建了我的排列并为每个排列创建了单独的变量(使用 excel 来合并它们)。
我从 A1...A2000 列出了我的变量。我需要把它放到一个列表中,这样我就可以在我的代码的 for 循环中使用它。如果我用逗号分隔它(例如:A1、A2、A3 ......),我唯一知道的方法是,但这对于 2000 个变量是不现实的。
有什么建议么?
变量按顺序列出,如下所示:
A1 = ('xpath text')
A2 = ('xpath text')
A2000 = ('xpath text')
我正在使用 selenium 通过下拉菜单进行网络爬网
for i in range(1, 2000):
xpathlist = [A&i]
for xp in xpathlist:
b.find_element_by_xpath(xp)
click = download.click()
解决方案
...使用 excel 合并它们...
我可能对此读得太多了,但是您可以通过以下方式绕过 Excel:
from itertools import product
NAMES= ('x', 'y', 'z')
VALUES = ('foo', 'bar')
nvs = [f'{n} {v}' for n, v in product(NAMES, VALUES)]
print(nvs)
['x foo',
'x bar',
'y foo',
'y bar',
'z foo',
'z bar']
或者对于排列(如你所说):
from itertools import permutations
VALUES = ('foo', 'bar', 'baz', 'qux')
perms = [f'{a}/{b}/{c}' for a, b, c in permutations(VALUES, 3)]
print(perms)
['foo/bar/baz', 'foo/bar/qux', 'foo/baz/bar', 'foo/baz/qux',
'foo/qux/bar', 'foo/qux/baz', 'bar/foo/baz', 'bar/foo/qux',
'bar/baz/foo', 'bar/baz/qux', 'bar/qux/foo', 'bar/qux/baz',
'baz/foo/bar', 'baz/foo/qux', 'baz/bar/foo', 'baz/bar/qux',
'baz/qux/foo', 'baz/qux/bar', 'qux/foo/bar', 'qux/foo/baz',
'qux/bar/foo', 'qux/bar/baz', 'qux/baz/foo', 'qux/baz/bar']
然后你可以遍历列表nvs
或perms
推荐阅读
- javascript - 如何在函数内部返回函数?(如 p5.js createVector)
- c++ - 为什么这些程序被允许传递一个非常量变量而我不能?
- python - 尝试安装 chat-replay-downloader 导致“没有模块名为打字”
- reactjs - 当输入不聚焦时使输入标签保持不变
- linux - 进程退出后内存仍在使用
- c++ - 为什么我在进行单元测试时 Visual Studio 会给出未解决的外部符号错误?
- mysql - MySQL UNION ALL 多重使用优化
- rest - 使用不同的 WebAPI 将相关数据输入数据库
- c# - 定义不需要访问器的数据类型(单属性类)
- python - 带或不带括号的对象属性标注信息