Python 如果字母表中的索引是矢量,如何打印字母?
Python的新特性。 让Python 如果字母表中的索引是矢量,如何打印字母?,python,string,loops,Python,String,Loops,Python的新特性。 让string包含所有字母表。 设s为包含一组字母的字符串。 让v是一个带有一些数字或范围的向量。 我必须打印s中的字母,字母表中的索引包含在v中 到目前为止,a有点乱 string = " abcdefghijklmnopqrstuvwxyz" v = range(5) s = "dadalasdfg" for i in v: for j in s: if s==string[i] and s[i]==0: print (
string
包含所有字母表。
设s
为包含一组字母的字符串。
让v
是一个带有一些数字或范围的向量。
我必须打印s
中的字母,字母表中的索引包含在v
中
到目前为止,a有点乱
string = " abcdefghijklmnopqrstuvwxyz"
v = range(5)
s = "dadalasdfg"
for i in v:
for j in s:
if s==string[i] and s[i]==0:
print (j)
例如,给定
范围(5)
,如果它们包含在s
中,我想为v
中的每个intI
打印'a',b',c',d',e'
- 如果字符串[i]出现在s中
- 然后打印字符串[i]
>>> [string[i] for i in v if string[i] in s]
['a', 'd']
我不知道你在问什么。但是我假设,如果
s
中的任何字母出现在string
的前五个字母中,请打印它们。
您的if
语句的计算结果永远不会为true。您试图将整个s
与字符串中的一个字母表进行比较。我想你要找的是这样的东西:
string = " abcdefghijklmnopqrstuvwxyz"
v = range(5)
s = "dadalasdfg"
for i in v:
for j in s:
if j == string[i]:
print (j)
另外,您不需要声明v
。
你可以做:
string = " abcdefghijklmnopqrstuvwxyz"
s = "dadalasdfg"
for i in range(5):
for j in s:
if j == string[i]: #if the particular letter in `string` exists in s
print (j)
如果您正在查找s
中出现的前五个字母表。
这几乎是一回事
for i in range(5):
for j in s:
if string[i] == j:
print(string[i])
break #comment this out, if you want the result to have repetitions.
试试这个:
>>>string = "abcdefghijklmnopqrstuvwxyz"
>>>v = range(5)
>>>s = 'dadalasdfg'
>>>letters = [string[i] for i in v]
>>>letters
['a', 'b', 'c', 'd', 'e']
>>>found_letters = [i for i in s if i in letters]
>>>found_letters
['d', 'a', 'd', 'a', 'a', 'd']
不确定是否理解您的“规范”,但请尝试:
string= "abcdefghijklmnopqrstuvwxyz"
v = 5
s = "dadalasdfg"
for i in string[:v]:
for j in s:
if i==j:
print(j)
break
编辑:较短版本:
string= "abcdefghijklmnopqrstuvwxyz"
v = 5
s = "dadalasdfg"
for i in string[:5]:
if i in s:
print (i)
仔细阅读后,我怀疑你需要这样的东西:
string = " abcdefghijklmnopqrstuvwxyz"
v = range(5)
s = "dadalasdfg"
for i in v:
for j in s:
if j == string[i]:
print (j)
s
字符
alphabet=“abcdefghijklmnopqrstuvxyz”
v=范围(5)
s=“dadalasdfg”
valid=[字母[i]表示v中的i]
打印[char for char in s,如果char in valid]['d', 'a', 'd', 'a', 'a', 'd']
注意:我更改了您的变量
string
,因为这也是一个内置类的名称。我遇到了一个问题,您的“if”:s不能等于string[I],因为它的大小不同(s是多个字符的字符串,string[I]是一个一个字符的字符串),s[I]不能等于零,因为s[I]这不是一个数字。错误可能是这样的欢迎来到StackOverflow。请阅读并遵循帮助文档中的发布指南。适用于这里。在您发布MCVE代码并准确描述问题之前,我们无法有效地帮助您。“有点乱”不是一个问题;对于导师来说,这更像是一个上下文设置短语。如果s==string[i]和s[i]==0,你想通过做什么?不确定你期望的是什么:因为s
是一个字符串,s
的任何字符都不会被比较为等于零。描述您的逻辑,显示您的调试尝试,等等。这正是我所需要的。非常感谢。谢谢你的详细回复。这就是我需要帮助的原因。