python - 将字符串中的真值转换为 Int

标签 python string python-3.x type-conversion

list = ['JACOBIS','LIMANIS','FOXTROT']
word = input('enter a word in the list')
generatedword = (random.choice(list))

程序运行时的可能场景, 如果用户输入 FOXTROT 但单词是 JACOBIS:

print("Your word contains 1/7 correct characters")

可能的解决方案:

if word == generatedword:
    print ("your word contains 7/7 correct characters")

in 操作是否适合这种情况?例如:

print ("your word contains", len(str(generatedword)), "/7")

print ("your word contains", len(str(word)) in generatedword, "/7")

最佳答案

首先,in 不是函数,它是成员检查操作的运算符。

其次你不能使用 in 因为你可能有一个像 hello 和另一个像 he 这样的词,而这是 while hehello但是字符长度不一样。

相反,您可以使用 set.intersection() 来查找常见字符:

>>> a = "FOXTROT"
>>> b = "JACOBIS"

>>> len(set(a).intersection(b))
1

但请注意,您需要将其除以 set(b) 的长度,以处理具有重复字符的单词。

由于这种方法将根据唯一字符给出计数,如果你想为以下示例的交集获取 2,你可以使用 str.count()sum() 函数如下:

>>> a = 'FOXTROT'
>>> 
>>> b = 'JACOBIS' 

>>> sum(a.count(i) for i in set(b))
2

这将为您提供第一个字符串中所有字符在第二个字符串中的总和。

关于python - 将字符串中的真值转换为 Int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37259336/

相关文章:

python - 复杂二进制分析 - 位翻转并写入二进制文件 (Python)

r - 在 R 中查找长字符串中的第一个匹配子字符串

string - 子序列查询的数据结构

c - 从一行中提取一个短语

python-3.x - python3.6,async with和await的区别

python - 元组、列表和集合定义中的星号,字典定义中的双星号

python - 如何在 Odoo 中使用游标?

python - for循环没有从列表中删除所有项目,解决方案是什么?

php - 使用 xml-rpc 向自定义字段添加值

python - 从另一个包中动态导入一个包