给出元组的元组 T :
(('a', 'b'))
和单个元组 t1 :
('a','b')
为什么:
t1 in T
返回False?
In [22]: T = (('a','b'))
In [23]: t1 = ('a','b')
In [24]: t1 in T
Out[24]: False
然后如何检查元组是否在另一个元组中?
答案 0 :(得分:8)
问题是因为T不是元组的元组,它只是一个元组。逗号是一个元组,而不是括号。应该是:
>>> T = (('a','b'),)
>>> t1 = ('a', 'b')
>>> t1 in T
True
事实上,你可以松开外括号:
>>> T = ('a','b'),
>>> t1 = 'a','b'
>>> type(T)
<type 'tuple'>
>>> type(T[0])
<type 'tuple'>
>>> type(t1)
<type 'tuple'>
>>> t1 in T
True
虽然有时需要优先级,但如果有疑问则将它们放入。但请记住,正是逗号使它成为一个元组。
答案 1 :(得分:2)
执行此操作>>> T = (('a','b'))
>>> T
('a', 'b')
不会生成包含元组的元组,如您所见:
>>> T = (('a','b'),)
>>> t1 in T
True
>>> T
(('a', 'b'),)
要制作单个元素元组,您需要添加一个试用逗号:
>>> t1 = 'a','b'
>>> t1
('a', 'b')
>>> 1,2,3,4,5,6
(1, 2, 3, 4, 5, 6)
事实上,括号甚至不是一个要求,因为这也会创建一个元组:
$msg =
"<html xmlns='http://www.w3.org/1999/xhtml'>
<body bgcolor='#FFD75B'><br /><br />
<table cellpadding='10' cellspacing='0' border='0' align='center' bgcolor='#ffffff'>
<tr>
<td align='center'><img src='http://www.BSFlag.com/images/BS-flagGIF.gif' width='301' height='141' /></td>
</tr>
<tr>
<td align='center' width='600'><h1>" . $FromEmail . " has sent you the BS Flag</h1>
<h2>for the following reasons:</h2>
<blockquote>" . $Reason . "</blockquote>
<p><em>Learn more about the BS Flag at <a href='http://www.bsflag.com'>www.bsflag.com</a>.</em></p></td>
</tr>
</table>
<br /><br />
</body>
</html>";
//send mail
$headers = "MIME-Version: 1.0\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\n";
$headers .= "X-Priority: 3\n";
$headers .= "X-MSMail-Priority: Normal\n";
$headers .= "X-Mailer: php\n";
$headers .= "From: "".$companyName."" <".$companyEmail.">\n";
mail("$to", stripslashes($subject), stripslashes($msg), $headers) or die("Could not send e-mail - Error A46GY7");
答案 2 :(得分:1)
再次检查。您的代码中可能有其他错误。这项检查确实有效。
至于更新,您没有创建嵌套元组。
(('a', 'b')) == ('a', 'b')
如果你需要一个单元素元组,你需要一个尾随昏迷:
(('a', 'b'),)