我有一条要放入列表中的python行fabric.connection.Connection("192.168.3.100", port=22, user="pi", connect_kwargs = {"password" : "Raspberry"})
,理想情况下使用列表推导来增加列表中每个元素的IP地址的最后一个数字。
例如,我希望列表看起来像这样(当然,其中还有更多元素):
LIST_A = [("192.168.3.100", port=22, user="pi", connect_kwargs = {"password" : "Raspberry"}), ("192.168.3.101", port=22, user="pi", connect_kwargs = {"password" : "Raspberry"}), ("192.168.3.102", port=22, user="pi", connect_kwargs = {"password" : "Raspberry"})]
请注意列表中每个项目的IP如何增加。
是否可以通过列表理解来做到这一点?还是需要一遍又一遍地复制/粘贴?
我在想一些类似的事情
LIST_A = [fabric.connection.Connection("192.168.3.{}", port=22, user="pi", connect_kwargs = {"password" : "Raspberry"}).format(x + 1) for x in range(40)]
但是那不起作用,因为该语句中有各种各样的数据类型。
谢谢!
答案 0 :(得分:2)
您可以使用zfill
和str.format
:
r = ["192.168.3.1{}".format(str(i).zfill(2)) for i in range(3)]
new_r = [fabric.connection.Connection(i, port=22, user="pi", connect_kwargs = {"password" : "Raspberry"}) for i in r]
print(r)
输出:
['192.168.3.100', '192.168.3.101', '192.168.3.102']