为什么循环浏览元组会给我字符串的第一个字符?

戴维·D。

有人可以向我解释这种行为:

REQUIRED_USER_FIELDS = ["email"]
for field in REQUIRED_USER_FIELDS:
    # field = 'email' -> OK for me, expected behaviour

REQUIRED_USER_FIELDS = ("email")
for field in REQUIRED_USER_FIELDS:
    # field = 'e' -> Why???

谢谢

用户名

("email")不是元组。它只是括号中的一个字符串。

您需要放置一个逗号使其成为一个元组:

REQUIRED_USER_FIELDS = ("email",)
#                        here--^

否则,您的for循环将遍历字符串"email"本身。


您应该记住,创建元组的逗号,而不是括号(如果有的话):

>>> ("email")
'email'
>>> "email"
'email'
>>> ("email",)
('email',)
>>> "email",
('email',)
>>>

您经常看到括号的原因是:

  1. 它们使您更加清楚地创建了一个元组。

  2. 您在某些地方需要它们,例如在调用函数时:

    >>> def func(arg):
    ...     return arg
    ...
    >>> # This fails because "a", "b" is treated as 2 separate arguments
    >>> func("a", "b")
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: func() takes 1 positional argument but 2 were given
    >>>
    >>> # This works because ("a", "b") is treated as 1 argument (a tuple)
    >>> func(("a", "b"))
    ('a', 'b')
    >>>
    

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么我的过程仅从字符串中插入第一个字符?

为什么在C ++中当我用'+'合并字符串时不合并但删除字符串的第一个字符

为什么字符串连接仅消耗第一个字符串?

为什么MySql只保存字符串的第一个字符?(我正在使用python 3)

HTML 标签中的第一个字符串叫什么?

为什么使用大小为1的目标字符串时strcpy省略源字符串中的第一个字符?

元组列表中第一个字符串之后存在多少个整数

在字符串的第一个字符之后插入字符?

从元组中获取第一个字符串,这是字典的关键

正则表达式匹配字符串的第一个和最后一个字符,但是为什么呢?

为什么我的 JS 队列只返回第一个单词而不是整个字符串?

useState 只在第二个 onClick 发送 props,在第一个 onClick 有一个字符串,为什么?

如何获得字符串的第一个字符?

javascript字符串操作删除第一个字符

关联数组返回字符串的第一个字符

删除字符串的第一个字符

如果找到,则删除字符串中的第一个字符

尝试打印字符串的第一个字符

如何替换字符串中的第一个字符

是否只能获取字符串的第一个字符?

根据第一个字符对字符串进行排序

Android如何获取字符串的第一个字符?

C字符串中缺少第一个字符

Python在第一个字符后中断字符串

字符串小写的第一个字符-C#

替换python 3中的第一个字符串字符

删除Javascript中字符串的第一个字符

从字符串中获取第一个字符的最快方法

如何小写字符串的第一个字符?