私はPythonで日付を扱っています。他のリストの重複した項目を使って項目内のリストを削除する
d = []
t = []
for row in cursor:
emp = row[2] #employee ID
logtype = row[4] # 'I' For login, 'O' for logout.
log = row[3] # time
day = log.strftime("%d")
month = log.strftime("%m")
year = log.strftime("%y")
times = log.strftime("%I:%M")
if (logtype == 'I') :
d.append(day)
t.append(times)
#the problem
time = list(set(t)) #len(22)
day = list(set(d)) #len(23)
RESULT
Day = ['03', '04', '05', '06', '07', '09', '10', '11', '11', '12', '13', '14', '17', '18', '19', '20', '21', '23', '24', '25', '26', '27', '28']
Time = ['08:05', '08:01', '08:08', '10:33', '08:05', '06:53', '08:15', '08:03', '08:06', '08:11', '08:05', '08:03', '09:23', '08:10', '08:05', '08:10', '08:26', '01:43', '08:01', '08:10', '01:14', '08:06', '08:06']
私は時間に同時にその値で繰り返しの日(11)を削除したいです。
UPDATE
from collections import Counter
#identify repeating day in dex number duplicate
dup = [i for key in (key for key, count in Counter(day).items() if count > 1) for i, x in enumerate(day) if x == key]
私は、私はその後
for x in dup[:-1]:
time.pop(x)
day.pop(x)
day2.append(adlaw)
time2.append(time)
下のコードが付加重複の最後に出現以外の条件を除く上記のコードを使用して、重複のインデックスを見つけることができ
あなたの質問を編集し、試したコードを追加してください。それは動作しますか? –
私は混乱しています* "Timeの重複値を使ってリストアイテムを削除する方法" *しかし、あなたの 'Day'はすでに一意の値を持っています。あなたが望むリストの構造とそれを達成しようとしたことについても言及してください –
例えば、 'Day'に2つの' 11'があるので '08:06'を削除したいですか? – Keiwan