我应该找到字符串中唯一字符的数量。
这是一个陷阱,没有数组,甚至没有while
循环(尽管for
循环可以实现这一点)。如果不在for
循环下编写一堆荒谬的if
-else
语句来检查每个字符值,我似乎无法做到这一点。
使用此:
len(set("stackoverflow")) # returns 12
由于您说过不允许使用set
,因此Christian推荐的解决方案是:len(set('aabbcd'))
你可以使用for
循环来解决它,就像你想的那样:
string = 'aabbcd'
unique = []
for char in string[::]:
if char not in unique:
unique.append(char)
print(len(unique))
输出:4
请下次上传您的尝试,让我们尝试并帮助您解释为什么这些尝试不起作用。这个网站不是为你做作业的。
编辑:替换了您也说过不能使用的列表()。
计算字符串中唯一字符的数量Python仅用于循环和ifel操作
计算字符串s
:中唯一ASCII字母的数量
import string
s = 'AabC'
s = s.lower()
print(sum(1 for c in string.ascii_lowercase if s.count(c) == 1))
如果要分别计算大写/小写字母,请删除s.lower()
行,并使用string.ascii_letters
而不是string.ascii_lowercase
。如果字符串中可能有其他符号,例如标点符号,则结果可能与len(set(s))
不同,例如':!'
所以不允许是;'while循环","集合","数组"(以及我假定的列表)。。
您可以创建一个包含所有唯一字符的字符串,并使用for循环遍历这些字符,这样您就不需要列表、数组或while循环。
letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz,.?*&^%$#@!etc"
def unique_count(some_string):
letter_count = 0
for letter in letters:
if letter in some_string:
letter_count += 1
return letter_count
print(unique_count("whatEver@")
//这将打印9(因为E!=E)
也许由于要匹配的字符串太长而不那么优雅,但它满足了不使用列表、数组或while循环的要求。
您可以通过只使用for循环和在列表上应用len()函数来实现这一点。
def unique_count(word):
k=list()
for x in word:
if x not in k:
k.append(x)
return len(k)
print(unique_count("stackoverflow is goOd"))
//prints 17 because case sensitive and count whitespace
您还可以创建一个函数,并通过传递参数随时调用它。
def unique_count(word):
k=list()
for x in word:
if x not in k:
k.append(x)
return len(k)
print(unique_count("stackoverflow is goOd"))
//prints 17