用python从字符列表中返回字符串字符的位置

需要从字符列表中找出每个字符在字符串中的位置,然后将整个字符位置返回到单个字符串中,每个字符位置之间的空格除外最后一个。您需要忽略所有不在字符列表中的由az中的字符组成的字符。

策略:

首先,我们需要在列表中声明az字符的列表。

alphabetlist = ["a", 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']

接下来创建一个循环,它会遍历字符串中的每个字符,并在上面的字符列表中查找每个字符的位置,如果字符不在列表中,则跳过迭代并转到下一个字符。我们需要确保在搜索开始之前字符已经被转换为小写字母,并且向包含零的返回索引(我们希望我们的索引从1开始而不是0开始)加1。

for ch in text:
        if(ch.lower() not in alphabetlist):
            continue
        else:
            ch = ch.lower()
            letterpos += str(alphabetlist.index(ch) + 1) + " "

最后返回字符串位置,不要忘记截断字符串末尾的空格。完整的代码如下:

def alphabet_position(text):
    if(len(text) == 0): # if the text is blank then return it
        return text
 
    alphabetlist = ["a", 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
 
    letterpos = ''
    
    for ch in text:
        if(ch.lower() not in alphabetlist):
            continue
        else:
            ch = ch.lower()
            letterpos += str(alphabetlist.index(ch) + 1) + " "
            
    return letterpos.rstrip()

现在我们可以用string参数调用上面的函数来查看结果。



原文地址:http://blog.51cto.com/meyangyang/2089288

时间: 2024-08-26 07:08:37

用python从字符列表中返回字符串字符的位置的相关文章

Python:判断列表中含有字符串且组成新的列表打印输出-Dotest董浩

'''题一:判断列表中含有字符串且组成新的列表打印输出知识点:列表.列表的增删改查.for循环.if判断'''#@Author:Dotest软件测试#@QQ:1274057839names = ['Dotest','test','donghao',100,True]#定义空列表:容器:思考:为什么不放在for循环里面定义?str_name = []#for循环for name in names: #if判断:函数:isinstance是判断是否为某类型 if isinstance(name,st

用Python实现剔除列表中相同的元素

问题描述:采用python实现剔除列表中相同的元素.顾名思义,比如说有一列表listVal = [12, 34, 23, 12, 23, 34, 15],经过剔除之后,应该只剩下listVal = [15]. 起初,我的思路是这样的:遍历每一个元素a(称之为大的遍历),记元素a的位序为LocA,对于每一个元素再做遍历(小的遍历),小的遍历中应该是这样执行的:在LocA直到列表结尾查找跟a相同的位序SameLocA,如果找到了,则删除找到的SameLocA对应的元素跟a;如果没找到,则遍历下一个元

C++11 —— 获取 tuple 参数列表中指定数据类型的索引位置

1. 问题背景 ??在 C++11 的标准中,我们可以通过 std::get< Index >(tuple) (以常量整数值为索引号)操作 tuple 中的参数,而到了 C++14 之后的标准,新增了 std::get< Type >(tuple) (以数据类型为索引)的方式操作 tuple 中的参数.那么,若只是在 C++11 标准中,是否有办法使用 以数据类型为索引 的方式操作 tuple 中的参数呢? 2. 解决办法 ??解决上面所提到的问题,其本质上,就是要解决 如何获取

《Python CookBook2》 第四章 Python技巧 - 若列表中某元素存在则返回之 &amp;&amp; 在无须共享引用的条件下创建列表的列表

若列表中某元素存在则返回之 任务: 你有一个列表L,还有一个索引号i,若i是有效索引时,返回L[i],若不是,则返回默认值v 解决方案: 列表支持双向索引,所以i可以为负数 >>> def list_get(L,i,v=None): if -len(L)<= i < len(L): return L[i] else: return v >>> list_get([1,2,3,4,5,6],3) 4 异常机制 >>> def list2_ge

41 正则中匹配多个字符串匹配任意单个字符正则中使用字符串重复、可选和特殊字符

第三课 正则中匹配多个字符串 # 匹配多个字符串 # 择一匹配符号, | import re s = 'Python|Ruby|Java|Swift' m = re.match(s,'PythonRuby') print(m) # <re.Match object; span=(0, 6), match='Python'> m = re.search(s, 'I love Python.') print(m) # <re.Match object; span=(7, 13), match

[python] 字典和列表中的pop()函数

在字典和列表中,pop()函数都是删除特定元素,并将删除的元素返回给指定的变量或丢弃 一.字典元素删除 1.1 clear() 语法:dict.clear() 1 x = {'a':1, 'b':2, 'c':3} 2 m= x.clear() 3 print(x,m) 4 #输出 5 {} None 说明:删除所有的元素 1.2 pop() 语法:dict.pop(key,[value]) 说明:删除指定键及对应的值,如果在字典中不存在键及value,则返回pop()中指定的key对应的val

【python】获取列表中最长连续数字

最近开发遇到一个功能需求,目的是要获取一个AI分析结果中最长连续帧,比如一个视频中连续3帧有人,那么我认为这个视频就是有人,我就要判断这个视频帧列表中是否有连续的三帧有人.本质就是获取列表中的最长连续数字,比如有一个列表 a = [1,2,3,4,1,2,3],要获取这个列表中最长连续数字,应该是[1,2,3,4]. 拓展,比如我想获取每隔n的最长连续数字怎么办?例如:b = [1,3,5,7,9,1,4,7,10],我想获取每隔2的最长连续数字,应该是[1,3,5,7,9],我想获取每隔3的最

Swift中返回字符串的宽度

最近在用swift 开发软件,但是iOS8要求更加严格,以前获取字符串的宽度的方法,都不能用,自己写了个,虽然很简单,但是希望和大家分享. <span style="font-size:18px;"> // MARK:返回字符串的宽度 func returnWidth(string:NSString) -> CGFloat { let size: CGSize = string.sizeWithAttributes([NSFontAttributeName: UIFo

Python3列表中获取相同元素出现位置的下标

前言 list: Python3的列表类型, 和其他语言中的数组类似 定义格式: l = ["a", "b", "c", "a", "b", "c", "a"] , 下文举例用到的列表x为此列表 list常用方法(文章中用到的方法): index(元素[, Start[, Stop]]) : 获取列表下标 三个参数, 后两个参数为可选参数. 一个参数, PS: l.i