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 (

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 (j)

例如,给定
范围(5)
,如果它们包含在
s
中,我想为
v
中的每个int
I
打印'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
    的任何字符都不会被比较为等于零。描述您的逻辑,显示您的调试尝试,等等。这正是我所需要的。非常感谢。谢谢你的详细回复。这就是我需要帮助的原因。