这是字符串 ds ='Java;蟒蛇;红宝石; SQL' 我已经使用滑动功能来分割每种语言,并发现一种语言的数量。 如果我想查找字符串中是否包含2种语言,则返回零。 示例:在上述变量中,由于同时存在java和python,因此必须将count返回为1。
def language_both_jp(y):
count = 0
prog = (y.split(";"))
for i in range(0,len(prog)):
if(prog[i] == 'Java'):
for i in range(0,len(prog)):
if(prog[i] == 'Python'):
count += 1
return count
答案 0 :(得分:3)
您可以这样做,而不要使用dictionary来存储每种语言的计数:
ds = 'Java; Python; Ruby; SQL'
counts = {}
for chunk in ds.split(';'):
language = chunk.strip()
counts[language] = counts.get(language, 0) + 1
print(counts)
输出
{'Java': 1, 'SQL': 1, 'Python': 1, 'Ruby': 1}
另一种 pythonic 方法将是使用collections.Counter:
from collections import Counter
ds = 'Java; Python; Ruby; SQL'
counts = Counter(language.strip() for language in ds.split(';'))
print(counts)
输出
Counter({'Java': 1, 'Ruby': 1, 'Python': 1, 'SQL': 1})
一旦您拥有一个具有每种语言计数的类似映射的对象,就遍历键,值对并输出计数大于1的对象,例如:
from collections import Counter
ds = 'Java; Python; Ruby; SQL; Python'
counts = Counter(language.strip() for language in ds.split(';'))
for language, count in counts.items():
if count > 1:
print(language, count)
输出
Python 2
请注意,以上示例中的输入字符串已进行了少许修改,以包含两次Python。
答案 1 :(得分:1)
问题是您应该被"; "
分割,因此您应该:
def language_both_jp(y):
count = 0
prog = (y.split("; "))
for i in range(0,len(prog)):
if(prog[i] == 'Java'):
for i in range(0,len(prog)):
if(prog[i] == 'Python'):
count += 1
return count
language_both_jp(ds)
#1
一种更简单的方法是:
def language_both_jp(x, l):
return 1 if [i for i in ds.split("; ") if i in l] else 0
language_both_jp(ds, ['Python','Java'])
#1
答案 2 :(得分:0)
您的要求不是很容易理解... 但是,请尝试以下解决方案...
i
。如果您want to find the count of occurrence
的{{1}}仅将字符串和word
作为参数传递。
尝试下面的代码...
word
它将打印单词出现的次数
def language_both_jp(y, word):
count = 0
prog = (y.split(";"))
for i in range(0,len(prog)):
if(prog[i] == word):
count += 1
return count
string = 'java;python;java;python;c;python'
print(language_both_jp(string, 'java'))
。如果您想罚款两个单词的出现。.
尝试下面的代码。
ii
def language_both_jp(y, word1,word2):
count1 = 0
count2 = 0
prog = (y.split(";"))
for i in range(0,len(prog)):
if(prog[i] == word1):
count1 += 1
if(prog[i] == word2):
count2 += 1
return 'occurrence of '+word1+'='+str(count1)+'\n'+'occurrence of '+word2+'='+str(count2)
args = 'java;python;java;python;c;python'
print(language_both_jp(args, 'java','python'))
。如果您想查找任何两个单词的存在...
尝试以下代码
iii
请问您是否有任何疑问...