【问题标题】:How do you check if a place in a list is ascii你如何检查列表中的位置是否为ascii
【发布时间】:2013-11-20 21:37:52
【问题描述】:

我一直在寻找一种方法来做到这一点,我只找到了使用字符串的方法,我想知道是否可以使用列表来完成。

#----------------------------
#flesch reading score program
#----------------------------

#----getting file to read----
myfile = open('project2test.txt')
txt = myfile.read()
words = txt.split()
txt = list(txt)
txt.append(' ')

#----global variables----
numWords, numberOfWords, numSentences, numSyllables = 0,0,0,0

punctuation = '.?;:!'
extendedPunctuation = '.?;:!,/<>]}\|)(*&^%$#@'
abc = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
syllables = 'aeiouAEIOU'
numbers = '1234567890'

#----counting functions----
def sentenceEnd(i,numSentences):
    if txt[i] in punctuation:
        numSentences += 1
    return numSentences

def wordEnd(i,numWords):
    if txt[i] in abc:
        if txt[i+1] == ' ' or txt[i+1] == '\n':
            numWords += 1
        if txt[i+1] in extendedPunctuation:
            numWords += 1
        if txt[i+1] in numbers:
            numWords += 1
    return numWords

def syllableEnd(i,numSyllables):
    if txt[i] in syllables:
        if txt[i+1] not in syllables:
            numSyllables += 1
    return numSyllables

#----main loop----
for i in range(len(txt)):
    numWords = wordEnd(i, numWords)
    numSentences = sentenceEnd(i,numSentences)
    numSyllables = syllableEnd(i,numSyllables)

for word in words:
    numberOfWords += 1


flesh = 206.835 - 1.015 * (numberOfWords/numSentences) - 84.6 * ((numSyllables)/numberOfWords)
print("The flesch redability of your document is: ", flesh) 
print(numSyllables, ' ', numSentences, ' ' , numWords, ' ', numberOfWords)

现在我必须定义一切。 我基本上想知道如果不是 sat puntuation =, abs = ... list[i].ascii == true

【问题讨论】:

  • 按位置是指列表索引包含非 ascii 吗?还是?
  • 您尝试了哪些方法,但在哪些方面没有奏效?据我所知,如果您将 abc 替换为单字符串列表,它仍然可以工作。
  • 你能多解释一下你到底想做什么吗?
  • 我根本不会那样做(带有\w 字符类的正则表达式会更好)但如果你确实想使用这种方法,请使用内置的string.letters你的abcdocs.python.org/2/library/string.html#string.letters 数字和标点符号有类似的常量。
  • 你不必定义任何特殊的东西来使用string.letters,只需导入它。 import stringfrom string import letters.

标签: python list ascii


【解决方案1】:
punctuations = [' ',',']
original_string = "Hello,World! How Clean is Python!"

words = []
words.append(original_string)

for x in punctuations:
    temp = []
    for word in words:
        temp += word.split(x)
    words = temp

这应该可行。

【讨论】:

    猜你喜欢
    • 2012-06-17
    • 1970-01-01
    • 2019-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-16
    • 2011-09-07
    相关资源
    最近更新 更多