假设我有一个这样的列表:
[1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)
以及这样的函数列表:
[a, b, c, d]
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法来获得这个输出?有类似的东西zip,但功能和参数?
[a(1), b(2), c(3), d(4)]
Run Code Online (Sandbox Code Playgroud) 我正在尝试比较2个单独字符串中的字符,这个想法是我将返回一个值,该值对应于两个字符串共享多少个字符。例如,如果字符串1是“ mouse”,而字符串2是“ house”。他们将共享4/5个字符。重要的是要注意,只有在相同的“索引位置”下,它们才会共享一个字符
def compareWords(word1, word2):
result = 0
if word1[0] in word2[0]:
result += 1
if word1[1] in word2[1]:
result += 1
if word1[2] in word2[2]:
result += 1
if word1[3] in word2[3]:
result += 1
if word1[4] in word2[4]:
result += 1
if word1[5] in word2[5]:
result += 1
print result, '/5'
Run Code Online (Sandbox Code Playgroud)
如果这是一个重复的问题,我很抱歉.我花了一个小时的时间试图找到答案,并测试了一些没有成功的理论.如果没有发布我正在处理的整个代码,我只会发布代码片段.
基本上我需要将这些for循环语句打印成一行来为每个员工运行.
即'员工山姆31岁,他们的职称是数据分析师,他们每年赚90,000美元.他们2017年的奖金为2,700美元."
# Employee List
names = ['Sam', 'Chris', 'Jose', 'Luis', 'Ahmad']
ages = ['31', '34', '30', '28', '25']
jobs = ['Data Analyst', 'SEO Python Genius', 'Data Analyst', 'Interchange
Analyst', 'Data Analyst']
salaries = ['$90,000', '$120,000', '$95,000', '$92,000', '$90,000']
bonuses = ['$2,700', '$3,600', '$2,850', '$2,750', '$2,700']
# this for-loop goes through name list
for name in names:
print ("Employee %s" % name)
for age in ages:
print ("is %s" % age, "years old")
for job in jobs:
print (", …Run Code Online (Sandbox Code Playgroud) 可能重复:
如何在Python中并行迭代两个列表?
我有3个这样的列表:
name = ['sam', 'john', 'napoleon', 'tanaka', 'ming']
country = ['USA', 'England', 'France', 'Japan', 'China']
age = [23, 41, 19, 16, 55]
Run Code Online (Sandbox Code Playgroud)
我想要一个像这样的输出:
sam; USA; 23
john; England; 41
napoleon; France; 19
tanaka; Japan; 16
ming; China; 55
Run Code Online (Sandbox Code Playgroud)
任何帮助都会很棒.提前致谢
我看起来能够并行迭代两个数组(或只有一个for循环).
这是我试过的剧本......
#!/usr/bin/env python
list1 = [ 'one', 'two', 'three' ]
list2 = [ 'I', 'II', 'III', 'IV', 'V' ]
for word in list1:
print word + " from list1"
for roman in list2:
print roman + " from list2"
for ( word, roman ) in (list1 list2):
if word:
print word + " from list1"
if roman:
print roman + " from list2"
Run Code Online (Sandbox Code Playgroud)
但是当我收到语法错误时显然是不正确的:
File "./twoarr.py", line 12
for ( word, roman ) in (list1 list2):
^
SyntaxError: invalid …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个函数,该函数比较两个长度相同的字符串的相同位置的字符并返回它们的差异计数。
例如,
a = "HORSE"
b = "TIGER"
Run Code Online (Sandbox Code Playgroud)
它会返回 5(因为同一位置的所有字符都不同)
这就是我一直在做的事情。
def Differences(one, two):
difference = []
for i in list(one):
if list(one)[i] != list(two)[i]:
difference = difference+1
return difference
Run Code Online (Sandbox Code Playgroud)
这给出了一个错误“列表索引必须是整数而不是字符串”
所以我尝试使用 int(ord(
def Differences(one, two):
difference = 0
for i in list(one):
if int(ord(list(one)[i])) != int(ord(list(two)[i])):
difference = difference+1
return difference
Run Code Online (Sandbox Code Playgroud)
这也返回相同的错误。
当我打印 list(one)[1] != list(two)[1] 时,它要么返回 True 要么返回 False,因为比较是正确进行的。
你能告诉我如何为此目的更正我的代码吗?
我正在尝试依次打印 2 个列表中的内容。
ls1 = ['Apple', 'Orange', 'Banana', 'Morty']
ls2 = ['Pineapple', 'Carrot', 'Rick', 'Tangelo']
Run Code Online (Sandbox Code Playgroud)
我通常会这样做:
for fruit in ls1:
print(fruit)
for fruit in ls2
print(fruit)
Run Code Online (Sandbox Code Playgroud)
但这将循环遍历一个列表,然后再循环另一个列表。我希望输出按顺序在列表之间交替:
Apple
Pineapple
Orange
...etc...
Run Code Online (Sandbox Code Playgroud)
或者
ls1[0]
ls2[0]
ls1[1]
ls2[1]
...etc...
Run Code Online (Sandbox Code Playgroud) 我有两个列表,第一个列表是ssh到的主机名,第二个列表是要在给定主机名上查找的隧道.我需要列表主机名中的第一项才能仅运行列表隧道中的第一项.然后我需要列表主机名中的第二项只运行列表隧道中的第二项.以下是我使用的示例,但显然不适合我.
hostnames = ["router1", "router2"]
tunnels = ["Tu1000", "Tu5000"
for i in range (0, len(hostnames)):
try:
ssh1 = paramiko.SSHClient()
ssh1.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh1.connect(hostnames[i], port=22, username=username, password=password, look_for_keys=False, allow_agent=False)
print "SSH connection to %s established.\n" % hostnames[i].upper()
ssh = ssh1.invoke_shell()
for j in range(0, len(tunnels)):
ssh.send("!\n")
ssh.send("en\n")
ssh.send(password)
ssh.send("\n!\n")
time.sleep(1)
output = ssh.recv(65535)
ssh.send("sh int desc | i " + tunnels[j] + "\n")
time.sleep(1)
output = ssh.recv(65535)
output = output.split(" ")
cli_hostname = output[55]
Run Code Online (Sandbox Code Playgroud) 我有两个列表,其中包含未知数量的元素。一个包含名称的列表,另一个包含种姓
'''像这样'''
names = ['name1','name2',........'name99']
castes = ['cast1','cast2',........'cast99']
Run Code Online (Sandbox Code Playgroud)
我想这样打印:
Hello Name1 cast1.
Hello Name2 Cast2.
.
.
.
.
.
Hello Name99 Cast99
Run Code Online (Sandbox Code Playgroud)
我已经尝试过了,但是没有用。
for i in names:
for j in castes:
print('Hello '+ i + j)
Run Code Online (Sandbox Code Playgroud)
但是它随机打印。喜欢...
Hello Name1 Cast1
Hello Name1 Cast2
.
.
Hello Name1 Cast99
.
.
.
Hello Name2 Cast1
Hello Name2 Cast2
.
.
Hello Name3 Cast99
.
.
.
Run Code Online (Sandbox Code Playgroud) li1 = [['a','b','c'], ['c','d','e']]
li2 = [['c','a','b'], ['c','e','d']]
c = 1
for i in range(len(l11)):
if (sorted[li1[i]]!=sorted(li2[i]):
c = 0
if(c): k = True
else: k = False
Run Code Online (Sandbox Code Playgroud)
如何在一行中写这个?另外如何使用zip()来完成这个?怎么li2 = [['a','c','b']]办?使用zip会返回True但它应该给出一个False.