我如何在python中创建一个if循环来表示“如果某个东西(在本例中为1/1)存在于我的一个列(在本例中为10)中?”?

我如何在python中创建一个if循环来表示“如果某个东西(在本例中为1/1)存在于我的一个列(在本例中为10)中?”?,python,if-statement,Python,If Statement,我有这样一个文件: Chr10 31 . T C 35.1 . DP=7;AF1=1;CI95=1,1;DP4=0,0,7,0;MQ=23;FQ=-48 GT:PL:GQ 1/1:68,21,0:39** Chr10 445 . G T 34 . DP=23;AF1=0.5;CI95=0.5,0.5;DP4=7,5,6,3;MQ=19;FQ

我有这样一个文件:

Chr10   31      .       T       C       35.1    .       DP=7;AF1=1;CI95=1,1;DP4=0,0,7,0;MQ=23;FQ=-48    GT:PL:GQ        1/1:68,21,0:39**
Chr10   445     .       G       T       34      .       DP=23;AF1=0.5;CI95=0.5,0.5;DP4=7,5,6,3;MQ=19;FQ=12.3;PV4=1,6.2e-08,1,0.27       GT:PL:GQ        0/1:64,0,39:42
Chr10   447     .       A       C       93      .       DP=26;AF1=1;CI95=1,1;DP4=0,0,13,8;MQ=19;FQ=-90  GT:PL:GQ        1/1:126,63,0:99
Chr10   449     .       G       C       5.46    .       DP=28;AF1=0.4999;CI95=0.5,0.5;DP4=9,4,6,4;MQ=23;FQ=7.8;PV4=0.69,4.3e-08,0.037,1 GT:PL:GQ        0/1:34,0,130:34
Chr10   481     .       C       T       67      .       DP=55;AF1=0.5;CI95=0.5,0.5;DP4=17,22,10,5;MQ=25;FQ=70;PV4=0.22,1.5e-07,1,1      GT:PL:GQ        0/1:97,0,152:99
我想做一个循环,找到所有在第10列中有1/1的行

这是我写的脚本:

pilup= open ("libary_ts.sorted.pilup", "rb+")
with open ("select.txt", "wb+") as ch:
  for data in ch:
    e=data.split()
    if e[9] == "1/1":
但是我知道这是错误的,因为如果e[9]==意味着如果列10有精确的1/1,正如你在我放的样本数据中看到的,我总是有这样的东西:

1/1:213,60,0:99


我只是想知道我应该用什么来让这个if语句正常工作?是否有任何表示包含的符号?我在任何地方都找不到它!提前感谢!

如果它可以出现在列中的任何地方:

if "1/1" in e[9]:
  ...
如果它必须出现在列的开头,如您的示例所示:

if e[9].startswith("1/1"):
  ...
或者,如果列始终包含冒号分隔的值:

if e[9].split(':')[0] == "1/1":
  ...
最后一个是三个中最严格的,这是我个人的偏好。

如果该列的开头总是1/1,您可以使用startswith string方法:

if e[9].startswith("1/1")
首先,打开select.txt,wb+将删除文件的内容

您可以使用测试1/1是否出现在第十个元素的任何位置:

if "1/1" in e[9]:
或者,使用检查第十个元素是否以1/1开头:


要在stackoverflow上设置代码或原始输入文件的格式,请选择它并按Ctrl+K。感谢您的完整回答:-
if "1/1" in e[9]:
if e[9].startswith("1/1"):