如何编写用于计算串联所表示字符串数的方法

2024-06-01 07:16:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个列表data = ['aa', 'aaaa', 'aaaaaaaa', 'aaaa', 'qwer', 'qweraaaa'],其中我需要计算列表中字符串的数量,以列表中两个字符串的串联形式表示

我的代码:

def double_string(date):
    count = 0
    for item in data:
        if item * 2 in data:
            count += 1
    return count

我有4个测试,其中3个是正确的,1个是错误的

测试:

TESTS

任务:

TASK


Tags: 字符串代码in列表data数量defcount
3条回答

您可以尝试以下方法:

def double_string(lista):
    count=0
    for x in lista:
        if any(x+y in lista for y in lista):
            count+=1
    return count
print (double_string(['aa', 'aaaa', 'aaaaaaaa', 'aaaa', 'qwer', 'qweraaaa']))

输出

4

问题在于,您测试的是字符串与自身的连接,而不是所有其他组合与其他字符串的连接

此代码将在以下情况下工作:

def double_string(data):
    count = 0
    for i in range(len(data)):
        for j in range(i,len(data)):
            if data[i]+data[j] in data:
                count += 1
    return count
def double_string(data):
    str_count = 0
    for val in data:
        tempVal = val*2
        str_count += data.count(tempVal)

    return str_count
print (double_string(['aa', 'aaaa', 'aaaaaaaa', 'aaaa', 'qwer', 'qweraaaa']))

产出:4

相关问题 更多 >