我有两个这样的列表:
odd_word = ['hey']
我想要一个新列表,其中包含第二个列表中未包含的单词。在这种情况下:
>>> odd = list(set(first) - set(second))
>>> odd
[]
这样做最快的方法是什么?谢谢。
我尝试使用此处显示的方法:Get difference between two lists,但它给了我一个空白列表。
void Update()
{
if (isLocalPlayer)
{
if (Input.GetButton("Fire1"))
{
CmdFire(BulletSpawn);
}
}
}
[Command]
void CmdFire(GameObject Player)
{
Ray shooterRay = new Ray(Player.transform.position, Player.transform.forward);
if (Physics.Raycast(shooterRay, out Hit, 10000))
{
Debug.Log("player hit");
GameObject Bullet_Hole = (GameObject)Instantiate(BulletHole_Prefab, Hit.point, Quaternion.FromToRotation(Vector3.up, Hit.point));
NetworkServer.Spawn(Bullet_Hole);
}
}
答案 0 :(得分:3)
您可以使用collections.Counter
:
>>> from collections import Counter
>>> first = ['hello', 'hey', 'hi', 'hey']
>>> second = ['hey', 'hi', 'hello']
>>> odd_word = list((Counter(first) - Counter(second)).elements())
>>> print(odd_word)
['hey']
答案 1 :(得分:1)
这样做。
odd_word = [s for s in first if s not in second]
如果first
中有重复的字词不在second
中,则会给您重复。如果您不想要重复项,请改为执行此操作。
odd_word = list({s for s in first if s not in second})