python中的字符去首

python中的字符去首,python,arrays,token,Python,Arrays,Token,对于分配给我们的作业,我们需要获取一首诗并标记它,然后将其放入数组中。然后,使用map和filter函数,我们必须在将诗歌放入新数组的同时,对其进行去同步和去资本化。在把这首诗斩首之前,我已经把一切都弄清楚了。通过给我们的示例代码,它告诉我们如何对一个字符进行去大写,但我需要弄清楚如何读取所有字符并返回一个列表,以便它对所有字符进行去大写。这是我目前掌握的代码 def decapitalizeTokens(transformed): decap = [] for i in ran

对于分配给我们的作业,我们需要获取一首诗并标记它,然后将其放入数组中。然后,使用map和filter函数,我们必须在将诗歌放入新数组的同时,对其进行去同步和去资本化。在把这首诗斩首之前,我已经把一切都弄清楚了。通过给我们的示例代码,它告诉我们如何对一个字符进行去大写,但我需要弄清楚如何读取所有字符并返回一个列表,以便它对所有字符进行去大写。这是我目前掌握的代码

def decapitalizeTokens(transformed):
    decap = []
    for i in range(0,len(transformed),1):
       lowered = toLower(transformed[i])
       decap.append(lowered)
       print(lowered)
       return decap

def toLower(ch):
    if (ord(ch) <= ord('Z')):
        return chr(ord(ch) + ord('a') - ord('A'))
    else:
        return ch
def去资本化技术(转换):
脱咖啡因=[]
对于范围内的i(0,len(已转换),1):
降低=降低(转换[i])
脱卡附加(降低)
打印(降低)
退杯
def toLower(ch):
如果(作战需求文件(ch)

这就是你想要的吗?

你的
去资本化etokens
功能实际上已经接近你想要的了(据我所知),但如果您粘贴的内容与源文件中的内容完全相同,则问题似乎是您的
return
语句需要降级一级。您希望在循环完成后返回小写字符列表,而不是在第一次循环结束时返回

def decapitalizeTokens(transformed):
    decap = []
    for ch in transformed: # You can iterate directly over a string.
        lowered = toLower(ch)
        decap.append(lowered)
        print(lowered)
    # right here we'll return a list.  ''.join() if you want a string.
    return decap
作为oneliner的另一种形式,您可以使用理解:

decap = [toLower(ch) for ch in transformed]
--添加交互式示例--

>s='A test String'
>>>def toLower(ch):
…如果(作战需求文件(ch)>>
>>>[toLower(c)代表s中的c]
[a'、'@'、't'、'e'、's'、't'、'@'、's'、't'、'r'、'i'、'n'、'g']
>>>[toLower(c)表示“”中的c]
[]
>>>地图(托洛尔,s)
[a'、'@'、't'、'e'、's'、't'、'@'、's'、't'、'r'、'i'、'n'、'g']
>>>托洛尔(“”)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“”,第2行,在下面
TypeError:ord()应为字符,但找到长度为0的字符串
>>>

请注意,我们可以像使用字符一样有效地迭代空白字符串,也可以迭代教授的
toLower
函数在传递空格时的奇怪行为。

您没有真正提出问题,因此我不会真正回答它-尽管您发布的代码有一个非常严重的问题

如果传入的字符串中除了字母以外还有其他内容,则会出现意外行为

Hi!
更改为

hiA

你需要确保你正在“降低”的字母实际上是字母,而不是标点符号。

这是一种奇怪的方式来实现
。降低()
…这是我们老师给我们的示例代码,他说我们必须使用它。这就是我遇到问题的原因。听起来你的老师是个白痴。白痴可能有点苛刻,但我同意,有很多更好的方法来教
映射
过滤
的概念。尤其不幸的是,他似乎是个白痴不鼓励使用内置功能-为什么教一门语言,然后浪费它的功能?@JoranBeasley这就是为什么我从来不理解那些说“没有导入”的问题这是PYTHON该死的东西,不是Javascript。如果我不能导入,我就不再写PYTHON了,我只是在拼凑一些伪代码,假装它是一种语言。我认为任何不能用
import foo
解决的问题都不值得用PYTHON解决。我只是试图把它放在我的代码中,但它不起作用。@user3295470-你能详细说明一下“不起作用”吗?回溯?我看到缩进不一致(一级4个空格,另一级3个空格),但这是从问题中的代码复制的。回溯(最后一次调用):文件“words.py”,第13行,在main()文件“words.py”,第7行,在main words=decapitalizeTokens(clean)文件中“/home/Katherine/cs150/project1/shakes.py”,第33行,在去资本化的toLower=toLower(ch)文件中“/home/Katherine/cs150/project1/shakes.py”,第38行,在toLower if(ord(ch)文件中@user3295470-您收到的错误不能由此处演示的代码引起。请使用
map
和理解来查看我的交互式示例。产生该错误的唯一方法是将空白字符串传递给
ord
,但您的示例或我的版本中没有任何内容可以这样做。请编辑问题并验证文件中的代码在文章中表示。
Hi!
hiA