首页 > 解决方案 > 有没有办法在 python 中获取单词中的字符数?

问题描述

我想获得单词中的字符数。单词所在的特征函数参数必须是 np.array。特征函数应该返回形状(n,29)的特征矩阵。以下代码返回数据帧。有没有办法更有效地做到这一点。

def feature(a):
    chars = "abcdefghijklmnopqrstuvwxyzäö-"
    charlist = []
    for i in chars:
        charlist.append(i)
    #test if char is in the word and append to list1
    list1 = []
    for i in charlist:
        for j in a:
            
            list1.append(len(re.findall(i, j)))
    #divide list to chunks by char       
    l = np.array_split(np.array(list1),29)
    arr = np.array(l)
    arr = arr.T
    df = pd.DataFrame(arr, index = a, columns = charlist)
       
    return df

rndwords = []
for i in range(6):
    rndwords.append(''.join(random.choices(string.ascii_lowercase, k = 5)) )
array = np.asarray(rndwords, dtype=np.str)
feature(array)

标签: pythonpandasnumpy

解决方案


我不确定我在这里是否正确理解了您的问题,但是您是否只是在给定单词 for 中的字符数之后chars

如果是这样,它可能就像length = len(chars). 这当然只会给你单词的长度,但是当你在字符之后,这就是你想要的......

你可能想在你的问题中更清楚一点。如果要计算所有字母:

chars = "abcdefghijklmnopqrstuvwxyzäö-"
for i in  chars:
    count += 1
    current += i
    if current == chars :
        print(count) 

推荐阅读